1. 程式人生 > 其它 >python3函式註釋方法解析

python3函式註釋方法解析

技術標籤:函式註釋python

python3有一種新的註釋函式方法,在工作之中我剛碰到也一臉懵逼
如下函式

def test(self, s: str) -> int:

這是python3的新特性,簡單理解為s:str中的s還是你要傳的形參這個沒有變,str為該形參的註釋,意思是告訴你傳入的s應該是個字串,當然這裡重點理解一下注釋二字,也就是說python仍然是動態賦值型別語言,這裡雖然告訴你s應該是字串,但是你傳一個int進去,你的程式碼也是可以正常跑的(前提是程式碼內部能正常處理該型別),只不過如果你使用的IDE是pycharm這種的,會產生一些警告,而且這樣的話註釋也變的沒有意義了。而後面的-> int是return返回值的型別註釋,告訴你這個函式返回的是一個int型別,當然和引數註釋一樣,僅僅是註釋。

程式碼例子2

def test(b: int, c: int, timeout: int = 10) -> int:
    print("定義函式時註釋b引數為Int型,但是在程式碼不報錯的情況下可以傳遞引數字串型b", b)
    print("按照定義函式時註釋標的int型別c給c正常傳遞int型別引數", c)
    print("timeout引數的值為", timeout)

    '''
    真正的函式返回值型別以及返回值是由函式內部程式碼決定的,定義函式時的 ->int 也只是註釋,這
    裡函式註釋的返回值為Int但是我程式碼返回的為字串,正常執行。
    '''
return "cccccccccccccccccccccccccccccccccc" if __name__ == '__main__': ret = test("wwwwwwwwwwwwwwwww", c=12) print("列印返回值", ret) # 執行之後的結果為 定義函式時註釋b引數為Int型,但是在程式碼不報錯的情況下可以傳遞引數字串型b wwwwwwwwwwwwwwwww 按照定義函式時註釋標的int型別c給c正常傳遞int型別引數 12 timeout引數的值為 10 列印返回值 cccccccccccccccccccccccccccccccccc