Python程序設(shè)計入門(4)模塊和包
Python語言功能非常強(qiáng)大,除了類之外,還有模塊和包的概念,這有點像perl,此處簡單說說包和模塊。
一、Python中的模塊
模塊——其實就是我們說的庫(lib)的概念,不過它不僅只是可以包含一系列函數(shù),也可以包含類,python里是沒有像C語言之類,直接include某文件的,包正是這種類似的東西。
Python 引入模塊的方法有兩種:
1、import 模塊名(實際是對應(yīng)的就是 文件名.py )
2、模塊名 = __import__("模塊文件名(不帶擴(kuò)展名)")
也可以" import 模塊名 as 別名 "這樣用
例如:
# -*- coding: gb18030 -*-
#引入模塊
import test_mod
#調(diào)用模塊里的函數(shù)
test_mod.my_func()
#調(diào)用模塊里的類
tc = test_mod.test_cls()
tc.test_func()
test_mod.py源碼如下:
# -*- coding: gb18030 -*-
def my_func():
print 'I am a function in the module! '
class test_cls:
def test_func(self):
print 'I am a mothod in the class! '
調(diào)用模塊里的函數(shù)或類一定要用 “模塊名.類名|函數(shù)名” 的方式。
正是因為這種特性,python里很多 os.xx 、 sys.xx 之類的語法,但它不一定是對象(對象和非對象之間顯得極混亂,或者可以認(rèn)為模塊也是一個對象吧,只是比較特殊),這是python語言的一個嚴(yán)重的缺點,不過當(dāng)你習(xí)慣這些的時候,就比較容易讀懂python的腳本了。
sys 和 os 是 python 里最常用的模塊,需要了解一下它們。
二、Python中的包
包實際上就是對一系列模塊的封裝,以防止模塊名之間發(fā)生沖突,對于一個標(biāo)準(zhǔn)的python程序,通常的結(jié)構(gòu)為:
appname
__init__.py
son_pack1
__init__.py
son_mod_1_1.py
son_mod_1_2.py
son_pack2
__init__.py
son_mod_2_1.py
son_mod_2_2.py
son_mod_1.py
.......
如果學(xué)過Java就會明顯,這是一種按目錄來查找文件的方法,不過不同之處是每個目錄必須帶 __init__.py 否則將不會被識別為包的子目錄。
在有__version__、__all__、__path__ 三個特殊變量,可以指定,也可以讓這文件為空。
調(diào)用包里的類或函數(shù)的方法是:
包名.子包名.類名|函數(shù)名
這實際上就相當(dāng)于C++或C#里的名字空間。
在調(diào)用包時,需要注冊目錄和具體模塊的調(diào)用方法
如,要調(diào)用 son_mod_1_1.py
那么就是:
此外還有一種方法是用 form 關(guān)鍵字,方法為:
如果要喜引入 appname.son_pack1 里的所有模塊,那么為:
對于使用 import * 的情況,必須在 __init__.py 中用 __all__ 指明,如:
相關(guān)文章
python軟件測試Jmeter性能測試JDBC Request(結(jié)合數(shù)據(jù)庫)的使用詳解
這篇文章主要介紹了python軟件測試Jmeter性能測試JDBC Request(結(jié)合數(shù)據(jù)庫)的使用詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-01-01
對Python的交互模式和直接運行.py文件的區(qū)別詳解
今天小編就為大家分享一篇對Python的交互模式和直接運行.py文件的區(qū)別詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-06-06
python 基于PYMYSQL使用MYSQL數(shù)據(jù)庫
這篇文章主要介紹了python 基于PYMYSQL使用MYSQL數(shù)據(jù)庫的方法,幫助大家更好的理解和使用python,感興趣的朋友可以了解下2020-12-12
python?selenium中Excel數(shù)據(jù)維護(hù)指南
這篇文章主要給大家介紹了關(guān)于python?selenium中Excel數(shù)據(jù)維護(hù)的相關(guān)資料,文中通過實例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2022-03-03
python安裝mysql-python簡明筆記(ubuntu環(huán)境)
這篇文章主要介紹了python安裝mysql-python的方法,測試環(huán)境為ubuntu,較為詳細(xì)的記錄了安裝mysql-python過程中遇到的問題與解決方法,具有一定參考借鑒價值,需要的朋友可以參考下2016-06-06
django rest framework serializer返回時間自動格式化方法
這篇文章主要介紹了django rest framework serializer返回時間自動格式化方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-03-03
python實現(xiàn)數(shù)通設(shè)備端口監(jiān)控示例
這篇文章主要介紹了python實現(xiàn)數(shù)通設(shè)備端口監(jiān)控示例,需要的朋友可以參考下2014-04-04

