Python 的函式註釋

xu_zhoufeng發表於2016-05-21

Python 3.x 引入了函式註釋,以增強函式的註釋功能,下面是一個普通的自定義函式:

def dog(name, age, species):
    return (name, age, species)

新增了註釋的自定義函式:

def dog(name:str, age:(1, 99), species:'狗狗的品種') -> tuple:
    return (name, age, species)

如上,可以使用:對引數逐個進行註釋,註釋內容可以是任何形式,比如引數的型別、作用、取值範圍等等,返回值使用->標註,所有的註釋都會儲存至函式的屬性。
檢視這些註釋可以通過自定義函式的特殊屬性__annotations__獲取,結果會議字典的形式返回:

dog.__annotations__

# {'age': (1, 99), 'name': str, 'return': tuple, 'species': '狗狗的品種'}

另外,使用函式註釋並不影響預設引數的使用:

def dog(name:str ='dobi', age:(1, 99) =3, species:'狗狗的品種' ='Labrador') -> tuple:
    return (name, age, species)

執行結果:

dog()

# ('dobi', 3, 'Labrador')

相關文章