python使用typing

2022-10-11 14:47:12
def greeting(name: str) -> str:
    return 'Hello ' + name

复杂类型typing:

from typingimport List
Vector= List[float]defscale(scalar:float, vector: Vector)-> Vector:return[scalar* numfor numin vector]from typingimport Dict, Tuple, Sequence

ConnectionOptions= Dict[str,str]
Address= Tuple[str,int]
Server= Tuple[Address, ConnectionOptions]

自定义类型:

from typingimport NewType
UserId= NewType('UserId',int)
some_id= UserId(524313)

简单的类型注解:

defadd(a:int)->int:return a+1

复杂的类型:
这个时候就要借助typing模块
List[str]:表示由str类型组成的列表
Tuple[int, int. int] 表示由int类型的元素组成的长度为3的元组

from typingimport List, Tuple, Dict
 
names: List[str]=['Germey','Guido']
version: Tuple[int,int,int]=(3,7,4)
operations: Dict[str,bool]={'show':False,'sort':True}

list

var: List[intorfloat]=[2,3.5]
var: List[List[int]]=[[1,2],[2,3]]

tuple

person: Tuple[str,int,float]=('Mike',22,1.75)

Dict

defsize(rect: Mapping[str,int])-> Dict[str,int]:return{'width': rect['width']+100,'height': rect['width']+100}

sequence
当我们不需要严格区分一个变量是list还是tuple的时候

defsquare(elements: Sequence[float])-> List[float]:return[x**2for xin elements]

NoReturn
当一个方法没有返回结果时:

defhello()-> NoReturn:print('hello')

TypeVar
可以借助它来自定义兼容特定类型的变量,比如int,float,None都是符合要求的。

Height= TypeVar('Height',int,float,None)defget_height()-> Height:return height

Callable
可调用类型,用来注解一个方法

defdate(year:int, month:int, day:int)->str:return f'{year}-{month}-{day}'defget_date_fn()-> Callable[[int,int,int],str]:return date
  • 作者:凡凡不知所错
  • 原文链接:https://blog.csdn.net/qq_43355223/article/details/105753668
    更新时间:2022-10-11 14:47:12