Python中的子產品
有過C語言程式設計經驗的朋友都知道在C語言中如果要引用sqrt這個函數,必須用語句"#include<math.h>"引入math.h這個頭檔案,否則是無法正常進行調用的。那麼在Python中,如果要引用一些内置的函數,該怎麼處理呢?在Python中有一個概念叫做子產品(module),這個和C語言中的頭檔案以及Java中的包很類似,比如在Python中要調用sqrt函數,必須用import關鍵字引入math這個子產品,下面就來了解一下Python中的子產品。
一.子產品的引入
在Python中用關鍵字import來引入某個子產品,比如要引用子產品math,就可以在檔案最開始的地方用import math來引入。在調用math子產品中的函數時,必須這樣引用:
子產品名.函數名
為什麼必須加上子產品名這樣調用呢?因為可能存在這樣一種情況:在多個子產品中含有相同名稱的函數,此時如果隻是通過函數名來調用,解釋器無法知道到底要調用哪個函數。是以如果像上述這樣引入子產品的時候,調用函數必須加上子產品名。
<a></a>
有時候我們隻需要用到子產品中的某個函數,隻需要引入該函數即可,此時可以通過語句
from 子產品名 import 函數名1,函數名2....
來實作,當然可以通過不僅僅可以引入函數,還可以引入一些常量。通過這種方式引入的時候,調用函數時隻能給出函數名,不能給出子產品名,但是當兩個子產品中含有相同名稱函數的時候,後面一次引入會覆寫前一次引入。也就是說假如子產品A中有函數function( ),在子產品B中也有函數function( ),如果引入A中的function在先、B中的function在後,那麼當調用function函數的時候,是去執行子產品B中的function函數。
如果想一次性引入math中所有的東西,還可以通過from math import *來實作,但是不建議這麼做。
二.定義自己的子產品
在Python中,每個Python檔案都可以作為一個子產品,子產品的名字就是檔案的名字。
比如有這樣一個檔案test.py,在test.py中定義了函數add:
那麼在其他檔案中就可以先import test,然後通過test.add(a,b)來調用了,當然也可以通過from test import add來引入。
三.在引入子產品的時候發生了什麼
先看一個例子,在檔案test.py中的代碼:
在test1.py中引入子產品test:
然後運作test1.py,會輸出"hello world"。也就是說在用import引入子產品時,會将引入的子產品檔案中的代碼執行一次。但是注意,隻在第一次引入時才會執行子產品檔案中的代碼,因為隻在第一次引入時進行加載,這樣做很容易了解,不僅可以節約時間還可以節約記憶體。
本文轉載自海 子部落格園部落格,原文連結:http://www.cnblogs.com/dolphin0520/archive/2013/03/19/2969152.html如需轉載自行聯系原作者