標註變數的類型Annotated

Python的變數是沒有類型的,可以使用標註Annotated,知道變數的類型。

標註應用範圍:

  • 變數類型
  • 參數類型
  • 傳回值類型
  • 類別

語法

使用冒號來區分類型。

變數: 類型

標註參數

函式參數希望是str,但傳進來是整數,就會有警告。

1
2
3
4
def func1(param1: str):
    print(param1)

func1(10)

警告的圖片如下:
img

在參數按下鍵盤ctrl + p (mac: cmd + p) 就會提示參數類型。
img

標註變數

1
2
3
4
i: int = 0
b1: bool = False
f1: float = 1.0
s1: str = ""

標註類別

1
2
3
4
class Dog:
    pass

dog1:Dog = Dog()

標註容器

1
2
3
4
list1: list = []
tuple1: tuple = ()
dict1: dict = {}
set1: set = set()

可以為每個元素設類型。

1
2
3
4
list1: list[str] = ["abc", "def"]
tuple1: tuple[int, str, float, bool] = (100, "Hello", 3.5, True)
dict1: dict[str, float] = {"a": 1, "b": 2, "c": 3}
set1: set[str] = {"a", "b", "c"}

註解標註

語法

# type:類型
1
2
a = "hello"  # type:float
s = 10 # type:str

傳回值標註

語法:

def 函式名(參數名: 參數類型, 參數名: 參數類型) -> 傳回值類型:
	程式碼
1
2
def func2(a: int, b: int, c: int) -> str:
    return f"{a} {b} {c}"

Union

使用前要匯入 Union

from typing import Union

語法

Union[類型, 類型, ..]

Union[int, str]意思為類型可以是int,也可以是str。

1
2
3
from typing import Union

data: Union[int, str] = "abc"

results matching ""

    No results matching ""