ps:使用的Python3.5版本。
例如datetime:
from datetime import datetime print(datetime.now())
就可以執行,但是用import就不行:
import datetime print(datetime.now())
報錯:AttributeError: module 'datetime' has no attribute 'now'
import datetime.datetime print(datetime.now())
報錯:ImportError: No module named 'datetime.datetime'; 'datetime' is not a package
是不是datetime只能用from import而不能用import?
from import 和 import有什么區別?
嗨嘍:正在學習python的小伙伴或者打算學習的,可以私信小編“01”領取資料!
問題解答
import Module # 引入模塊 from Module import Other # 引入模塊中的類、函數或者變量 from Module import * # 引入模塊中的所有‘公開’成員
PS:當有一個包名為pname時,其內部 *.py 文件的模塊名就是 pname.* 也就是說模塊名中包含了 Package包 這個概念。
其區別就是:
第一個:引入的模塊(假如是 mdemo )會自動生成一個‘對象‘以模塊名命名,然后就可以通過這個‘對象’(mdemo)獲取該模塊里面的類、函數或變量等...
第二個:引入模塊中的Other(這里的Other就是模塊中定義的成員)成員,調用時就可以省略 模塊名。
第三個:這種情況如果上面的第二個弄懂的話就不難理解了,其意思就是引入模塊中所有'公開'的成員。
鑒于上面的問題可以快速套用上面的分析
from datetime import datetime
# 引入 datetime 模塊中的 datetime 類,然后就可以通過datetime這個類調用now() 方法了
# 即,內部可以通過datetime.now()來調用
import datetime
# 引入datetime 模塊,然后通過這個模塊來調用模塊中的類datetime和類datetime中的方法now()
# 即:內部可以通過datetime.datetime.now()來調用
也就是說,有一個模塊datetime,這個模塊中有一個類datetime,在這個類中有一個方法now()
我們可以驗證上面這句話是否正確:
我們可以通過查看python默認查找模塊位置,一個個打開看下是否有datetime這個模塊