Loading

python 的 Type Hint 类型标注学习笔记

学习笔记,用于本人忘记知识点时回顾。

int

在变量后加 int 即可声明该变量为 int 类型,当调用该函数时,如果填入的参数不为 int 类型,则报错。

函数名后加 -> int 声明该函数返回值为 int 类型。

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

print(f(1, 2))      # 输出 3
print(f('a', 'b'))  # 报错,输入的不是 int 类型变量

list

lst 变量后面加入 list[int] 声明 lst 变量为 list 类型,list 内部变量为 int 类型。

def f(lst: list[int]) -> int:
    total = 0
    for i in lst:
        total += i
    return total

print(f([1, 2, 3]))  # 输出 6

dict

dict 需要传入 key 的类型以及 value 的类型。

def f(d: dict[str, int]) -> int:
    total = 0
    for i in d.values():
        total += i
    return total

print(f({'a': 1, "b": 2}))  # 输出 3

不固定的类型

当传入的参数类型不是固定的时候,可以使用 | 来声明函数的变量类型。

def f(x: int | None | float) -> int | float:
    if x is None:
        return 0
    else:
        return x

print(f(None))  # 输出 0
print(f(3))     # 输出 3

不确定的类型

使用 Any 来表明该变量为不确定、任意的,不填写变量类型的情况下,系统会默认填写 Any(手动填写上可以使代码可读性增加)。

from typing import Any

def f(a: Any) -> Any:
    return a

无返回值

函数无返回值时,默认为 None,可以不写但是系统会默认填 None

from typing import Any

def f(a: Any) -> None:
    a += 1

多选一

加入 Literal 则声明该变量的值只能是 Literal 里面的其中一个。

from typing import Literal

def f(a: int, b: Literal[True, False]) -> int:
    if b is True:
        return a
    else:
        return 0

print(f(1, True))
posted @ 2023-02-26 12:15  滑稽果  阅读(62)  评论(0编辑  收藏  举报
浏览器标题切换
浏览器标题切换end