Head First Python chapter 4 學習筆記
阿新 • • 發佈:2018-12-19
chapter 4
1. 自定義模組安裝到site-pakages
直譯器在檢視模組時,會從以下3個主要位置搜尋模組:
- 當前工作目錄
- 直譯器的site-pakages的位置(包含了已安裝的第三方Python模組,也包括自己寫的)
- 標準庫位置
使用setuptools安裝模組到site-pakages
- 1. 建立一個釋出描述
- 在要釋出的檔案的同一個資料夾下建立setup.py和README.txt檔案
from setuptools import setup
setup(
name='釋出的包的名字',
version='1.0', # 版本號後續重新發布時,更新
description= '描述',
author='作者',
author_email='作者郵箱',
url='xxx.com',
py_modules=['要釋出的.py檔案'], # 這個包中的所有.py檔案列表
)
- 2. 生成一個釋出檔案 在檔案的資料夾開啟命令列
py -3 setup.py sdist
在sdist資料夾中會有個新建立的可安裝的壓縮檔案(.zip或.tar.gz)
- 3. 安裝釋出檔案。
- 使用pip安裝包 在安裝包的資料夾位置開啟命令列
py -3 -m pip install 你的安裝包
- 4. 共享程式碼
- 將安裝包分享給他人
- PyPI
2. Python函式傳參
Python的函式傳參是按值傳遞的還是按引用傳遞的?
按值引數傳遞 是指使用一個變數的值來取代一個函式引數的做法。如果這個值在函式程式碼組中改變,對於呼叫這個函式的程式碼來說,其中相應的變數值並不會受到任何影響。可以把這個引數認為是原變數值的一個副本。 按引用引數傳遞(按地址引數傳遞)則不同,對於呼叫這個函式的程式碼,會維護這個程式碼中變數的一個連結。如果函式程式碼組中的變數改變,那麼在呼叫這個函式的程式碼中,相應的變數值也會改變。可以把這個引數認為是原變數的一個別名。 – 《Head First Python》
Python的變數都是物件引用,所以其函式呼叫本質上是按物件引用呼叫。而python的函式引數呼叫,會依據引數的資料型別,來選擇是按值還是按引用來呼叫。
- 對於不可變(字串、整數和元組),按值傳遞
- 對於可變(列表、字典和集合)按引用傳遞
3. PEP8 相容性
- 安裝pytest和PEP8外掛
py -3 -m pip install pytest # 安裝pytest
py -3 -m pip install pytest-pep8 # 安裝pep8
- 檢測PEP8相容性
py.test --pep8 file_to_test.py