從零開始學Python3之五——模組
阿新 • • 發佈:2019-02-16
from ... import ... 什麼的我就不寫了= =每個模組都有一個名稱,模組中的語句可以找到它們所處的模組的名稱。當模組第一次被匯入時,它所包含的程式碼將被執行。我們可以通過這一特性來使模組以不同的方式執行,這取決於它是為自己所用還是從其它的模組匯入而來。這款有通過模組的 __name__ 屬性來實現。
每一個Python模組都定義了它的__name__屬性。
如果它與__main__屬性相同則代表這一模組是由使用者獨立執行的。
模組的 __name__
每個模組都有一個名稱,模組中的語句可以找到它們所處的模組的名稱。當模組第一次被匯入時,它所包含的程式碼將被執行。我們可以通過這一特性來使模組以不同的方式執行,這取決於它是為自己所用還是從其它的模組匯入而來。這款有通過模組的 __name__ 屬性來實現。
if __name__ == "__main__":
print("This program is being run by itself")
else:
print("I am being imported from another module")
執行結果:每一個Python模組都定義了它的__name__屬性。
如果它與__main__屬性相同則代表這一模組是由使用者獨立執行的。
編寫自己的模組
案例(儲存為 mymodule.py ):
def say_hi():
print("Hi, this is mymodule")
__version__ = '0.1'
在相同目錄下用另一個Python程式使用這個模組。import mymodule
mymodule.say_hi()
print("Version", mymodule.__version__)
執行結果:下面是一個使用 from...import 語法的範本:執行結果同上。 from mymodule import * 將匯入諸如say_hi等所有公共名稱,但不會匯入__version__名稱,因為後者以雙下劃線開頭。所以要儘量避免from mymodule import ... 這種形式。from mymodule import say_hi, __version__ say_hi() print("Version", __version__)