Head First Python 讀書筆記(二)
阿新 • • 發佈:2019-01-07
第四章 :函式與模組
- 定義函式:
def
- 函式註釋文件
def icessun():
# 這也是註釋,下面是函式文件註釋,描述函式的用途
"""this is function document as docstring"""
vowels=set('aeiou')
word = input("provide a word to search for vowels:")
found=vowels.intersection(set(word))
for vowel in found:
print(vowel)
- 上面這種函式註釋可以,下面這種函式註解是針對python3的也行
def search4letters(phrase:str,letter:str)->set:
"""return a set of the letter found in phrase."""
return set(letter).intersection(set(phrase))
引數旁邊的表示:希望傳入的引數型別;引數列表後面的箭頭表示:返回值是一個集合;這樣做只是為了方便程式設計師閱讀,程式不會去強制校驗。
- 如何看註釋,而不用讀程式碼:在IDLE的編輯器中按F5執行程式碼,在python shell中輸入help(函式名字)
- 允許將任何物件作為引數傳遞給函式,而且允許將任何物件作為返回值返回
- 函式引數預設值,呼叫時沒有提供引數值,就是要函式中的預設值。
def search4letters(phrase:str,letter:str='aeiou')->set:
"""return a set of the letter found in phrase."""
return set(letter).intersection(set(phrase))
- 關鍵字引數賦值,呼叫函式時,直接使用函式中的形參去賦值(一般是按照形參的位置賦值)
def search4letters(phrase:str,letter:str='aeiou')->set :
search4letters(letter='xyz',phrase='galaxy')
函式共享
- 模組就是包含函式的檔案,把需要共享的函式單調放在一個檔案裡面,作為模組共享,使用時:
import 模組名字
即可 模組存放的位置:
- 當前工作目錄
- 你的直譯器的site-packages位置:
使用setuptools安裝
- 標準庫位置
在桌面建立一個資料夾,把要共享的模組放入其中;執行cmd
,切換到新建的資料夾下,呼叫python直譯器:py -3(windows下的命令)
,使用import 模組名字
匯入模組,使用模組中的函式。這個新建的資料夾就會被直譯器當做我們的當前工作目錄。
模組安裝到
site-packages
,使用的setuptools
工具- 建立一個釋出描述
- 生成一個釋出檔案
- 安裝釋出檔案
兩個必要的釋出描述檔案:setup.py and README.txt
# setup.py 檔案 描述我們的模組 README.txt 檔案要有,但是內容可選
from setuptools import setup
setup(name='functionTest',
version='1.0',
description='the first modules by icessun',
author='icessun',
author_email='[email protected]',
url='headfirstlabs.com',
py_modules=['functionTest'],
)
可以安裝的檔案(包)在dist
資料夾(由setuptools
建立)裡面,裡面包含模組的原始碼
- 使用
pip
安裝上面生成的包
到此,已經成功的建立了一個釋出檔案,可以直接把這個釋出檔案拷給對方,使用pip
安裝。或者是直接把這個釋出檔案上傳到PyPI
,讓所有的程式設計師都可以使用。