1. 程式人生 > >Head First Python chapter 4 學習筆記

Head First Python chapter 4 學習筆記

chapter 4

1. 自定義模組安裝到site-pakages

直譯器在檢視模組時,會從以下3個主要位置搜尋模組:

  1. 當前工作目錄
  2. 直譯器的site-pakages的位置(包含了已安裝的第三方Python模組,也包括自己寫的)
  3. 標準庫位置

使用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 相容性

  1. 安裝pytest和PEP8外掛
py -3 -m pip install pytest  # 安裝pytest
py -3 -m pip install pytest-pep8  # 安裝pep8
  1. 檢測PEP8相容性
py.test --pep8 file_to_test.py