变量名: 类型
示例如下:
var_1: int = 123
var_2: str = "hello world!"
var_3: list = [1, 2, 3, "hello"]
var_4: list[int] = [1, 2, 3]
var_5: tuple = (1, 2, 3)
var_6: tuple[int, int, int] = (1, 2, 3)
var_7: dict[str, int] = {"小明": 98, "小王": 95}
# type: 类型
示例如下:
var_8 = [1, 2, 3] # type:list[int]
var_9 = [1, 2, 3] # type:list
参数: 类型
def test_func1(data: int):
print(data)
# 以下这种写法是错误的
def test_func1(data): # type:int
print(data)
-> 类型
示例如下:
def test_func2(data: int) -> int:
print(data)
return 1
Union[类型,类型,......]
示例如下:
# 使用前需要导包
from typing import Union
# Union[]联合注解,联合注解更多的是用于容器方面上,如list[Union[]]
var_10: list[Union[int, str]] = [1, "hello", 1, 23, "world!"]
# 此出有警告提示,是因为元组本身是具有无序的特性的,所以使用Union[]联合注解是不能确定内容顺序的
var_11: tuple[Union[int, str]] = (1, "hello")
# 字典使用Union联合注解
var_12: dict[Union[int, str], Union[int, str]] = {1: "1", "小明": 123}
# 函数参数使用联合Union[]注解
def test_func3(data: list[Union[int, str]]) -> list[Union[int, str]]:
print(data)
return data
# 此处注意,字典类型data把key和value都需要用类型注解
def test_func4(data: dict[Union[int, str], str]) -> list[Union[int, str]]:
"""
以下函数形参的key是联合类型(int或str),value是str类型
:param data: 传入的具有联合(int或str)类型的字典数据
:return: 返回具有联合类型(int或str)的列表数据
"""
print(data)
return list(data.keys())
from urllib import request
from http.client import HTTPResponse
def demo():
s = request.urlopen('http://www.baidu.com')
assert isinstance(s, HTTPResponse)
// 这就有提示了
s.read()
if __name__ == '__main__':
demo()