python開發調用基礎:模塊和包
阿新 • • 發佈:2017-08-12
都沒有 init first 一個 moudle ... clas 開發 ==
一,包的調用
1 #!/usr/bin/env python 2 #_*_coding:utf-8_*_ 3 4 #調用 glance[1..4]\api\policy.py 路徑 5 # policy.py 內容 6 # def one(): 7 # print(‘this first!‘) 8 9 # 1.glance1裏面什麽都沒有寫,只有plicy這個模塊寫了個方法,導入了具體的模塊 10 # from glance1.api import policy 導入絕體模塊 11 # policy.one() #模塊的方法 12 13 # 絕對路徑的調用方式,註意init文件,目錄下都需要寫14 # import glance2 15 # glance2.api.policy.one() 目錄下的模塊方法都能找到 16 # glance2\__init__.py from glance2 import api 17 # glance2\api\__init__.py from glance2.api import policy 18 19 # 相對路徑的調用方式,註意init文件,與絕對路徑相比就是.的用法 20 # import glance3 21 # glance3.api.policy.one() #目錄下的模塊方法都能找到 22 # glance3\__init__.py from . import api23 # glance3\api\__init__.py from . import policy 24 25 # 相對路徑的調用不需要你去點點,直接就可以調用模塊的方法,註意init文件, 26 # 用的是impor * 和 all的匹配使用 27 # import glance4 28 # glance4.policy.one() 29 # glance4\__init__.py from .api import * 30 # glance4\api\__init__.py __all__ = [‘policy‘]
二,模塊的調用
1 #!/usr/bin/env python2 #_*_coding:utf-8_*_ 3 4 #一個py文件就可以作為一個模塊 5 #模塊的導入:直接導入文件的名字,不需要帶著後綴 6 #模塊中的函數調用:模塊名.函數名() 7 8 #模塊導入的時候做了三件事: 9 #首先 開辟了一個新的命名空間 my_moudle 10 #執行my_moudle內的代碼 11 #將my_moudle裏面的名字都和my_moudle綁定在一起 12 13 #模塊在一個程序中只會被導入一次,不會被重復導入 14 #為了節約資源 15 #如何實現的? 16 #導入一個模塊之後,會將模塊存儲在內存中 17 #當再次導入的時候,就到內存中去查看是否導入過這個模塊,如果導入了就不繼續導入 18 19 #導入的模塊有自己的命名空間 20 #當你給一個模塊起了別名的時候,就產生了一個命名空間,這個命名空間只和別名相關 21 22 # from ... import ... 這種形式是導入什麽模塊就用什麽模塊的方法 23 # import 模塊 這個被import的模塊把自己的全局導入進來 24 25 #參數問題,導入的模塊,再被調用時候可以傳參 26 27 #from 模塊 import * 28 #首先會把模塊當中所有不是‘_’開頭的內容導入進來 29 #還可以通過__all__來控制可以導入的內容 30 #但是 以上兩條只和 * 有關 31 32 # if __name__ == ‘main‘:函數名 調用和本身相對獨立,調用者需要導入模塊後調用函數名()執行,不會執行整個模塊內容 33 # import * 和 __all__ = [‘模塊名‘] all限制了調用者可以使用哪些變量和方法
python開發調用基礎:模塊和包