类型注释
Python3中引入了静态类型注解(Type hints),用于在 Python 代码中显式地注明变量、函数参数和函数返回值的类型。typing 模块是为 Python 提供静态类型注解的一组工具,它使 Python 开发者能够清晰明了地注释变量、方法和函数的数据类型。
def greeting(name: str) -> str:
from typing import Union, Optional
# Union 可能返回str和int中的任意一个
def get_user_input() -> Union[str, int]:
# Optional代表可能返回str和None
def get_username() -> Optional[str]:
# typing模块对常用的容器类型提供了类型注释关键字List 、Tuple 、Dict 和 Set
def fun(num: List[str], age: Tuple[int, bool]) -> Dict[str, Union[str, int]]:
# Tuple[int, bool] --代表2个元素的元组,第一个元素是int,第二个是bool
# Dict[str,Union[str, int]] 将函数的返回类型注释为一个字典,包含字符串类型的键和字符串或整型的值。
# Callable 类型注释
def func(arg1, arg2) -> str:
return 'aa'
def repeat(word: str, times: int, callback: Callable[[str, int], str]) -> None:
"""
接收字符串word、重复次数times和一个回调函数,它会使用回调函数重复一个词给定的次数。
"""
for i in range(times):
result = callback(word, i)
print(result)
repeat('hello', 3, func)
# callable(..., str) 代表函数入参可以是任意值,返回str类型。func(*args, **kwargs)
collections模块
collections模块提供几个额外的数据类型:Counter、deque、defaultdict、namedtuple和OrderedDict等。
(1)namedtuple: 生成可以使用名字来访问元素内容的tuple
(2)deque: 双端队列,可以快速的从另外一侧追加和推出对象
(3)Counter: 计数器,主要用来计数
(4)OrderedDict: 有序字典
(5)defaultdict: 带有默认值的字典
from collections import *