天天看點

python中的子產品,以及包的導入的總結

  子產品導入的方式:

  子產品的概念:一個.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)