在python3.7 環境下 函數聲明時能在參數後加冒號,如圖: 可能有疑問,python不是動態類型語言 ,難不成還能指定參數類型? 來看一下列印結果: 但同時也確實能傳其他類型的值 如:f("test",123) 那結果如何呢? 如下: 當然會報錯了啊,返回值是一個字元串,int型不能參與字元串 ...
在python3.7 環境下 函數聲明時能在參數後加冒號,如圖:
def f(ham: str, eggs: str = 'eggs') -> str :
print("Annotations:", f.__annotations__)
print("Arguments:", ham, eggs)
return ham + ' and ' + eggs
print(f("test","abc"))
可能有疑問,python不是動態類型語言 ,難不成還能指定參數類型?
來看一下列印結果:
但同時也確實能傳其他類型的值 如:f("test",123)
那結果如何呢? 如下:
當然會報錯了啊,返回值是一個字元串,int型不能參與字元串拼接,那參數後寫一個:str 和 ->str是什麼意思呢?
PS:如有需要Python學習資料的小伙伴可以加點擊下方鏈接自行獲取
note.youdao.com/noteshare?id=2dce86d0c2588ae7c0a88bee34324d76
在官方文檔指明.__annotations__是函數的參數註釋和返回值註釋:
所以列印出Annotations: {'ham': <class 'str'>, 'eggs': <class 'str'>, 'return': <class 'str'>}
其實並沒有指定類型 只是寫函數的人提醒用函數的人最好傳什麼類型的參數,因為最後需要兩個參數進行字元串拼接;
當然,也可以直接寫字元串提醒:
def f(ham: "傳一個字元串", eggs: str = 'eggs') -> str :
print("Annotations:", f.__annotations__)
print("Arguments:", ham, eggs)
return ham + ' and ' + eggs
print(f("test",123))
而聲明函數後那個箭頭:"->" 是返回值的註釋,-> str 意思即是提醒函數使用者返回值會是一個str型。