Python 函數參數有冒號 聲明后有-> 箭頭 返回值注釋 參數類型注釋


在python3.7 環境下 函數聲明時能在參數后加冒號,如圖:

1 def f(ham: str, eggs: str = 'eggs') -> str :
2     print("Annotations:", f.__annotations__)
3     print("Arguments:", ham, eggs)
4     return ham + ' and ' + eggs
5 
6 print(f("test","abc"))

可能有疑問,python不是動態類型語言 ,難不成還能指定參數類型?

來看一下打印結果:

但同時也確實能傳其他類型的值 如:f("test",123)

那結果如何呢? 如下:

當然會報錯了啊,返回值是一個字符串,int型不能參與字符串拼接,那參數后寫一個:str 和 ->str是什么意思呢?

在官方文檔指明.__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型


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM