1. 程式人生 > >Head First Python 讀書筆記(二)

Head First Python 讀書筆記(二)

第四章 :函式與模組

  • 定義函式: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,讓所有的程式設計師都可以使用。