Python中from import和import的區(qū)別?沒有比這更好的回答了

ps:使用的python3.5版本。

例如datetime:

from datetime import datetime
print(datetime.now())

就可以執(zhí)行,但是用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有什么區(qū)別?


image.png

問題解答

嗨嘍:小編是一名python開發(fā)工程師,這里有我自己整理了一套最新的python系統(tǒng)學習教程,
包括從基礎的python腳本到web開發(fā)、爬蟲、數(shù)據(jù)分析、數(shù)據(jù)可視化、機器學習等。想要的加Q裙:895817687

import Module # 引入模塊
from Module import Other # 引入模塊中的類、函數(shù)或者變量
from Module import * # 引入模塊中的所有‘公開’成員

PS:當有一個包名為pname時,其內(nèi)部 .py 文件的模塊名就是 pname. 也就是說模塊名中包含了 Package包 這個概念。

其區(qū)別就是:

第一個:引入的模塊(假如是 mdemo )會自動生成一個‘對象‘以模塊名命名,然后就可以通過這個‘對象’(mdemo)獲取該模塊里面的類、函數(shù)或變量等...

第二個:引入模塊中的Other(這里的Other就是模塊中定義的成員)成員,調(diào)用時就可以省略 模塊名。

第三個:這種情況如果上面的第二個弄懂的話就不難理解了,其意思就是引入模塊中所有'公開'的成員。


image.png

鑒于上面的問題可以快速套用上面的分析

from datetime import datetime

.#引入 datetime 模塊中的 datetime 類,然后就可以通過datetime這個類調(diào)用now() 方法了

.#即,內(nèi)部可以通過datetime.now()來調(diào)用

import datetime

.#引入datetime 模塊,然后通過這個模塊來調(diào)用模塊中的類datetime和類datetime中的方法now()

.# 即:內(nèi)部可以通過datetime.datetime.now()來調(diào)用

也就是說,有一個模塊datetime,這個模塊中有一個類datetime,在這個類中有一個方法now()

我們可以驗證上面這句話是否正確:

我們可以通過查看python默認查找模塊位置,一個個打開看下是否有datetime這個模塊


image.png

image.png
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容