模塊導入的方式:
模塊的概念:一個.py文件就稱為一個模塊
導入模塊中函數的方式:
方式一:import 模塊名
使用時:模塊名.函數名()
方式二 :from 模塊名 import 函數名
使用時:函數名()
方式三: from 模塊名 import *
使用時:函數名()
方式四:from 模塊名 import 函數名 as tt(自定義) 注意原來的函數名將失效
使用時:tt()
可以在模塊當中定義一個變量__all__:
使用__all__的影響: 后面的[]里面寫什么函數名,使用from 模塊名 import *方式導入時導入什么 __all__如果沒有這個變量將全部導入(__all__僅限 於from 模塊名 import *這種導入方式)
加__all__示例:
1 __all__ = ["demo"] 2 def demo(): 3 4 print("demo") 5 6 def demo1(): 7 print("demo1")
運行結果:
In [1]: from TT import * In [2]: demo() demo In [3]: demo1() ----------------------------------------------------------------------- NameError Traceback (most recent call last) <ipython-input-3-a8330644fa2e> in <module>() ----> 1 demo1() NameError: name 'demo1' is not defined In [4]:
不加__all__示例:
1 def demo(): 2 3 print("demo") 4 5 def demo1(): 6 print("demo1")
運行結果:
In [1]: from TT import * In [2]: demo() demo In [3]: demo1() demo1
包的導入方式
概念:包含了幾個py文件....里面在創建一個__init__文件就是包
導入包中函數,以及模塊的方式:
方式一:from 包名 import 模塊名
使用時:模塊名.函數名()
方式二:from 包名.模塊名 import 函數名
使用時:函數名()
方式三 :import 包名.模塊名
使用的時候 包名.模塊名.函數名()
方式四:from 包名 import *
前提是:將 __init__.py 文件中寫入__all__變量(寫入方式同模塊導入的寫入方式) 變量當中寫入哪個模塊則導入哪個模塊,不寫則什么都不導入
使用時:模塊名.函數名()
方式五:import 包名
前提是:在包里面的__init__.py 文件里寫入 from . import 模塊名 __init__.py里面導入哪個模塊 通過本方式就能使用哪個模塊
使用時:模塊名.函數名()
方式六:import 包名
Python2當中可以在__init__.py文件中寫入 Import 模塊名 通過import 包名 就可以導入__Init__.py文件中寫入的那個模塊名(此方法僅限python2)
使用時:模塊名.函數名()
.pyc文件的介紹:
導入時會產生一個.pyc的字節碼文件,此文件是當第一次導入時python解釋器會將被導入的模塊預解釋成字節碼的文件,下次再導入時python解釋器則不會做預解釋而是直接拿.pyc文件使用,這樣就不會每次導入時做解釋的操作,節省時間,當修改模塊文件的內容時,python解釋器會根據.pyc文件和模塊的修改時間判斷有沒有對模塊做修改,如果模塊的修改時間比.pyc文件的晚說明模塊已經被修改 Python解釋器會將模塊重新解釋成.pyc文件。