Python typing 的使用总结

1. 类型提示(Type Hints):Python 3.5引入了类型提示,这是一种新的语法特性,允许在函数声明中指定参数和返回值的预期类型。这些类型注解对Python解释器没有任何影响,但是可以被类型检查器、IDE、linter等工具用来捕获类型错误。

def greet(name: str) -> str:
    return 'Hello, ' + name

2. 内置类型:typing模块包含了所有Python内置类型的别名,如List、Dict、Tuple等。

from typing import List, Dict

def count_words(text: str) -> Dict[str, int]:
    ...

3. 泛型:可以使用typing模块定义泛型类型,例如List[int]表示整数列表。

from typing import List

def squares(nums: List[int]) -> List[int]:
    return [num ** 2 for num in nums]

4. 可选类型:Optional类型表示值可以是指定的类型,也可以是None。

from typing import Optional

def find_user(user_id: int) -> Optional[User]:
    ...

5. 字面量类型:Literal类型用于表示变量的值只能是特定的几个字面量中的一个。

from typing import Literal

def get_status(status: Literal['connected', 'disconnected']):
    ...

6. 类型别名:可以使用类型别名为复杂的类型注解创建简短的名称。

from typing import Dict, Any

JSON = Dict[str, Any]

def parse(json: JSON) -> JSON:
    ...

 7. 范型Sequence是一个泛型类型,用于表示可迭代的、有序的、可索引的容器,如列表(list)或元组(tuple)

from typing import Sequence

def get_numbers() -> Sequence[int]:
    return [1, 2, 3, 4, 5]

 

posted @ 2024-06-13 17:10  看一百次夜空里的深蓝  阅读(44)  评论(0编辑  收藏  举报