模塊
一個(gè).py
文件就稱之為一個(gè)模塊(Module)蒋歌。
Python又引入了按目錄來(lái)組織模塊的方法摧阅,稱為包(Package)汰蓉。
注:每一個(gè)包目錄下面都會(huì)有一個(gè)__init__.py
的文件绷蹲,這個(gè)文件是必須存在的棒卷,否則,Python就把這個(gè)目錄當(dāng)成普通目錄祝钢,而不是一個(gè)包比规。__init__.py
可以是空文件,也可以有Python代碼拦英,因?yàn)?strong>init.py本身就是一個(gè)模塊蜒什,而它的模塊名就是mycompany
使用模塊
#!/usr/bin/env python3 #可讓這個(gè).py文件直接在Unix/Linux/Mac上運(yùn)行
# -*- coding: utf-8 -*- #表示這個(gè).py文件本身使用UTF-8編碼
' a test module ' #這個(gè)字符串是模塊代碼的第一個(gè)字符串,表示文檔注釋
__author__ = 'Michael Liao' #利用__author__把作者寫(xiě)入
#--------------------以上是Python的標(biāo)準(zhǔn)文件模板---------------------
import sys #導(dǎo)入sys 模塊
def test():
args = sys.argv #sys模塊中的argv變量疤估,至少有一個(gè)元素
if len(args)==1:
print('Hello, world!')
elif len(args)==2:
print('Hello, %s!' % args[1])
else:
print('Too many arguments!')
if __name__=='__main__':
test()
總結(jié):在if __name__ == "__main__"
:之后的語(yǔ)句作為模塊被調(diào)用的時(shí)候灾常,語(yǔ)句之后的代碼不執(zhí)行;直接使用的時(shí)候铃拇,語(yǔ)句之后的代碼執(zhí)行钞瀑。通常,此語(yǔ)句用于模塊測(cè)試中使用慷荔。
作用域:
正常的函數(shù)和變量名是公開(kāi)的(public)雕什,可以被直接引用
類(lèi)似__xxx__
這樣的變量是特殊變量,可以被直接引用显晶,但是有特殊用途
類(lèi)似_xxx
和__xxx
這樣的函數(shù)或變量就是非公開(kāi)的(private)贷岸,不應(yīng)該被直接引用
關(guān)于private:外部不需要引用的函數(shù)全部定義成private,只有外部需要引用的函數(shù)才定義為public磷雇。
- 安裝第三方模塊
使用Mac或Linux偿警,安裝pip本身這個(gè)步驟就可以跳過(guò)了
使用Windows,確保安裝時(shí)勾選了pip和Add python.exe to Path
安裝:pip install Pillow
模塊搜索路徑:
試圖加載一個(gè)模塊時(shí)唯笙,Python會(huì)在指定的路徑下搜索對(duì)應(yīng)的.py文件螟蒸,如果找不到落剪,就會(huì)報(bào)錯(cuò):ImportError: No module named mymodule
要添加自己的搜索目錄,有兩種方法:
一是直接修改sys.path尿庐,添加要搜索的目錄:
>>> import sys
>>> sys.path.append('/Users/michael/my_py_scripts')
#這種方法是在運(yùn)行時(shí)修改忠怖,運(yùn)行結(jié)束后失效。
第二種方法是設(shè)置環(huán)境變量PYTHONPATH