介绍
类型注解是一种给函数参数、返回值以及任何变量增加类型描述的技术,规范的注解可以大大提升代码可读性
举个例子,下面的代码没有任何类型注解
class Duck:
"""鸭子类
:param color: 鸭子颜色
"""
def __init__(self, color):
self.color = color
def quack(self):
print(f"Hi, i am a {self.color} duck!")
def create_random_ducks(number):
ducks = []
for _ in number:
color = random.choice(["yellow", "white", "gray"])
ducks.append(Duck(color=color))
return ducks
添加了类型注解后的代码
from typing import List
class Duck:
def __init__(self, color: str): # 1
self.color = color
def quack(self) -> None: # 2
print(f"Hi, i am a {self.color} duck!")
def create_random_ducks(number: int) -> List[Duck]: # 3
ducks: List[Duck] = [] # 4
for _ in number:
color = random.choice(["yellow", "white", "gray"]) # 5
ducks.append(Duck(color=color))
return ducks
1.给函数参数加上类型注解
2.通过 -> 给返回值加上类型注解
3.你可以用typing模块的特殊对象List来标注列表成员的具体类型,注意,这里用的是[]符号
4.声明变量时,也可以为其加上类型注解
5.类型注解是可选的,非常自由,比如这里的color变量就没有加类型注解
typing是类型注解用到的主要模块,除了List以外,该模块内还有许多与类型有关的特殊对象,举例如下
Dict:字典类型,例如Dict[str,int]代表键为字符串,值为整型的字典
Callable: 可调用对象,例如Callable[[str,str], List[str]]表示接收两个字符串作为参数,返回字符串列表的可调用对象
TextIO:使用文本协议的类文件类型,相应的,还有二进制类型BinaryIO
Any:代表任何类型
标签:color,self,基础,ducks,Duck,类型,注解
From: https://www.cnblogs.com/weiweivip666/p/16665515.html