1. 程式人生 > 其它 >中以什麼開頭僅可註釋單行_Python基礎 | 0x5 註釋與模組

中以什麼開頭僅可註釋單行_Python基礎 | 0x5 註釋與模組

技術標籤:中以什麼開頭僅可註釋單行

1b8ddc9e807c412d3edb50ffb3ba84a1.png

註釋

註釋是一段「解釋性」文字,程式執行時,會跳過不做處理,一般是對程式碼的解釋或提示,以此提高程式碼的可讀性。寫註釋既方便了別人閱讀程式碼,也方便自己日後回顧,而不用苦思冥想當初寫這段程式碼的目的。當然註釋也不是寫的越多越好,應儘量避免沒用的註釋或寫過多的廢話

Python中提供了兩種註釋方式:「 單行註釋 」和「 多行註釋 」,單行註釋通過 # 進行標識,多行註釋則通過 兩個三引號 來標識,程式碼示例如下:
# 這是一個單行註釋'''
這是一個多行註釋
'''
1b8ddc9e807c412d3edb50ffb3ba84a1.png

模組

// 模組的基本使用//

模組其實就是一個Python檔案,以 .py 結尾,包含了Python定義和宣告。 舉個簡單例子,你可以把常用的程式碼塊抽取出來
放到一個單獨的py檔案中,然後在用到的地方對自己的模組進行 引用 ,模組引用示例如下:
# 匯入整個模組importsys# 匯入模組中的需要用到的部分fromsys importargv# 多個的時候可以用逗號隔開fromurllib.error importURLError, HTTPError# 匯入模組中所有不是以下劃線開頭的名字,不建議這樣做,如果同名會覆蓋# 定義過的名字;如果你硬想用這種匯入方式,可以新增__all__成員來進行約束# 比如:__all__ = ['a','b']fromsys import*
另外,在匯入自己的模組時,可能遇到這個問題: 寫在模組裡的測試程式碼都執行了
??? 可以通過內建屬性 __name__ 來區分,當此模組作為程式執行時, 會等於 __main__ ,而作為一個模組匯入到其他程式,值則 等於檔名字 (去掉.py)。 所以可以通過判斷:__name__ 是否 等於 __main__ 來決定測試程式碼是否執行。示例如下:
if__name__ == '__main__':
test()

// 重複匯入一個模組多次會怎樣//

答:第一次匯入後就將模組名載入到記憶體中,後續的import只是對已載入到記憶體中的 模組物件增加一次引用, 不會重新執行模組裡的語句

// 模組的搜尋路徑與順序//

答:可以通過列印 sys.path 來檢視模組的搜尋路徑,比如我的電腦:
[
'/Users/jay/Project/Python/Book/Chapter 6',
'/Users/jay/Project/Python/Book',
'/Library/Frameworks/Python.framework/Versions/3.6/lib/python36.zip',
'/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6',
'/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/lib-dynload',
'/Users/jay/Library/Python/3.6/lib/python/site-packages',
'/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages'
]
從上不難看出Python中 模組的搜尋順序程式所在目錄標準安裝目錄標準庫安裝目錄Python環境變數所包含的目錄 所以,如果自定義的模組與內建模組重名的話,會呼叫自定義模組而非內建的模組,因此在命名模組時應儘量 避免重名 。如果硬是要同名且兩個模組都用到,可以使用 完整路徑引入 ,並使用 as關鍵字 為模組 設定別名 。 還有,如果你的模組都不在這些搜尋路徑裡的話,可以通過呼叫sys.path.append("路徑") 臨時把路徑新增到搜尋路徑中。

// __init__.py檔案是做什麼的//

答:標識檔案所在的目錄是一個python的模組包(package),一般是空檔案,當然你也可以加點東西來控制包的匯入行為,直接在__init__.py 檔案中批量匯入所需模組,而不用一個個匯入,除此之外,還可以將一些初始化程式碼放入其中,示例如下:
# xxx包裡的__init__.pyimportaimportbimportc# 呼叫這個模組的py檔案importxxx
print(xxx.a,xxx.b,xxx.c)# 還可以利用上面講到的__all__變數來簡化下:# xxx包裡的__init__.py
__all__ = ['a','b,'c']
# 呼叫這個模組的py檔案
from xxx import *
還可以通過相對匯入的方式匯入模組,示例如下:
import.a importA # 點號表示使用當前路徑的a模組import..b importB # 兩個點號表示訪問上層的父類

// 模組如何遷移到新的環境//

有時我們寫的模組或者程式碼需要遷移到另一個裝置上去執行,而你的指令碼可能用到了一些依賴模組,如果pip命令一個個裝顯得有些繁瑣,可以通過「pipreqs」模組來完成。 先通過 pip installpipreqs 安裝模組,接著終端cd到專案路徑,鍵入 pipreqs 匯出檔案的存放路徑 ,即可匯出一份 requirements.txt 的依賴檔案,檔案內容就是專案所依賴的模組。把檔案複製到新的裝置上,鍵入 pip install -r requirements.txt 即可自動下載安裝用到的模組。 另外,如果是想把電腦裡Python環境中 所有的模組 遷移到另一臺電腦,可使用命令匯出依賴檔案 pip freeze > requirement.txt ,安裝方法同pipreqs。

// 模組的過載 //

上面說了重複匯入模組,只是新增一個引用,而不會重新匯入。有時可能需要在同一個會話中去更新模組,可以通過 imp標準庫中的reload函式 來完成。
fromimp importreload
reload(模組名)