子產品導入的方式:
子產品的概念:一個.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)
in
()
----> 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)