當前位置: 妍妍網 > 辦公

一個被忽略的語法細節,卻能提升你的Python程式碼品質

2024-06-03辦公

在Python中,有這樣一個語法,它 是可選的,不是必須這麽寫,但卻能顯著提升你的程式碼品質。 這就是 Python 中的型別提示(Type Hints)。

Python 中數據型別的問題

Python是一種動態型別程式語言,變量的型別是在執行分時配的,無需在賦值之前定義特定型別。

a = 5

變量 a 被賦值為 5,在此之前,無需聲明 a 儲存整數,直接將 5 賦值給 a

defadd(a, b):
return a+b
print(add(45)) # 9
print(add(4.05.0)) # 9.0
print(add('hi''world')) # hiworld
print(add([1,2], [3,4])) # [1, 2, 3, 4]

add 接收兩個變量 a b 並返回 a+b 。但 a b 應該是什麽數據型別呢?

  • 如果我們輸入整數,就會得到一個整數

  • 如果傳入浮點數,我們得到一個浮點數

  • 如果傳入字串,我們得到一個字串

  • 如果我們傳入列表,我們得到一個列表

  • Python並不在乎你傳入 a b 的參數。如果出現錯誤,你需要自己解決。盡管如此,型別提示可能會有所幫助。

    型別提示介紹

    在 Python 中,型別提示是可選的。如果不使用它們,Python 也能正常執行。然而,對於其他開發者來說,型別提示能讓我們的程式碼更易讀。

    def add(a: int, b: int) -> int:
    return a + b

    a b 後面加上 : int ,在函式結尾 ) 後面加上 -> int 是型別提示,指示函式的參數和返回型別。

  • a 應該是整數

  • b 也應該是一個整數

  • 函式的返回值也應該是整數

  • 型別提示並非強制數據型別,而是為了提示而存在的,這一點需要註意。

    defadd(a: int, b: int) -> int:
    return a + b
    print(add(45)) # 9
    print(add(4.05.0)) # 9.0
    print(add('hi''world')) # hiworld

    我們可以在 a b 中傳遞浮點數或字串,Python 不限制,允許程式碼執行。型別提示的主要目的是指導其他開發者閱讀我們的程式碼時,明確數據型別應當為何。

    型別提示的一些優勢

  • 開發人員能夠迅速確定函式或方法應使用的數據型別

  • 其他開發人員能夠快速了解函式或方法應返回的數據型別

  • 減少了變量數據型別的猜測和確認的時間

  • 提高了程式碼的整體可讀性

  • 盡管型別提示是可選的,但它是編寫優秀可讀程式碼的必備條件。

    雖然僅僅使用型別提示並不能讓程式碼變得優秀

    基礎型別提示

    a: int = 5
    # a should be an integer

    變量型別提示

    defavg(a:int, b:int) -> float:
    return (a+b)/2

    函式型別提示

  • a b 應為整數

  • 函式應返回浮點數值

  • 復雜型別的型別提示

    但如果我們有一個整數列表呢?不用擔心,內建的 typing 模組提供了一些有用的型別提示功能。

    from typing import List
    defaverage(numbers: List[int]) -> float:
    return sum(numbers)/len(numbers)

    numbers 應是一個整數列表。

    from typing import Dict
    defcount(d: Dict[str, int]) -> int:
    # stuff

    d 應該是一個字典,其中鍵是字串,值是整數。

    classDog:
    pass
    from typing import List
    defmagic(dogs: List[Dog]) -> int:
    # stuff

    dogs 應該是一個包含自訂 dog 物件的列表。

    寫在最後

    掌握型別提示並不困難,但它可以提高程式碼的可讀性。在編寫優秀的Python程式碼時,使用型別提示是至關重要的,特別是在開發大型企業應用程式並需要與其他開發人員合作時。

    Crossin的新書【 碼上行動:用ChatGPT學會Python編程 】已經上市了。 本書以ChatGPT為輔助,系統全面地講解了如何掌握Python編程,適合Python零基礎入門的讀者學習。

    購買後可加入讀者交流群,Crossin為你開啟陪讀模式,解答你在閱讀本書時的一切疑問。

    Crossin的其他書籍:

    添加微信 crossin123 ,加入編程教室共同學習 ~

    感謝 轉發 點贊 的各位~