天天看點

python中的子產品

子產品:随着程式變的越來越大  為了便于維護 需要把它分為多個檔案 為此python允許把定義放入一個檔案 然後在其他腳本中将其作為子產品導入

建立子產品: 将相關的語句和定義放入與子產品同名的檔案中

#file:module.py
def numValue(a,b):
    q = a/b
    r = a-q*b
    return (q,r);      

要在其他的程式中使用該子產品 則可以使用import語句:

import module;
a,b = module.numValue(64,8);
print(a,b);      

輸出結果:

8.0 0.0

import語句建立了一個新的命名空間  并在該命名空間中執行與.py檔案相關的所有語句 要在導入後通路命名空間的内容 隻要使用該子產品的名稱作為字首即可 如:module.numValue

如果要使用不同的名稱導入子產品 可以給import語句加上可選的as 限定符

import module as fun;
a,b = fun.numValue(18,2);
print(a,b);      

9.0 0.0

要将具體的定義導入到目前命名空間中,還可以使用使用以下語句:

from module import numValue;
a,b = numValue(32,2);
print(a,b);      

16.0 0.0

要把子產品的所有内容加載到目前的命名空間中還可以使用:

from module import *;
a,b = numValue(32,2);      

與對象一樣 可使用dir() 函數列出子產品的内容

import module;
print(dir(module));      

['__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', 'numValue']

如何擷取幫助?

我們已經接觸過__doc__擷取文檔中的文檔說明  互動式模式運作python時 可使用help()指令獲得有關内置子產品和python其他方面的資訊 單獨輸入help()将獲得一般資訊 而輸入help(‘moduleName') 則可獲得具體子產品的資訊  如果提供函數名稱 help()指令還可以傳回該函數的詳細資訊

總結: 

                   1,python中子產品的概念 :将函數的定義儲存起來,然後在其他腳本中導入使用;

             2,定義子產品: 儲存函數定義的檔案應該與子產品名一緻

             3,導入子產品:使用import語句導入 如果想使用不同的名稱導入子產品 可使用as 限定符

                如: import module as fun ; 

                如要省略調用子產品中函數時的字首 則可以使用 from  module  import fun 的形式                 導入函數具體的定義