Python类型提示
摘自:Python 类型提示简介 - FastAPI (tiangolo.com)
快速入门
类型提示用于声明一个变量的类型,在Python 3.6+版本的时候引入。
示例:
def get_full_name(first_name: str, last_name: str):
    full_name = first_name.title() + " " + last_name.title()
    return full_name
print(get_full_name("peter","park"))
注意,类型提示用的是冒号,不是设置默认参数的等号。
这样编写的好处在于,编辑器知道参数类型后,比如vs code,输完 first_name. 后按一下 Ctrl + Space,会自动显示字符串支持的方法。
嵌套类型
有些容器数据结构可以包含其他的值,比如 dict、list、set 和 tuple。它们内部的值也会拥有自己的类型。
你可以使用 Python 的 typing 标准库来声明这些类型以及子类型。
它专门用来支持这些类型提示。
列表
例如,让我们来定义一个由 str 组成的 list 变量。
从 typing 模块导入 List(注意是大写的 L):
from typing import List
def process_items(items: List[str]):
    for item in items:
        print(item)
这表示:"变量 items 是一个 list,并且这个列表里的每一个元素都是 str"。
这样,即使在处理列表中的元素时,编辑器也可以提供支持。
元组和集合
声明 tuple 和 set 的方法也是一样的:
from typing import Set, Tuple
def process_items(items_t: Tuple[int, int, str], items_s: Set[bytes]):
    return items_t, items_s
这表示:
- 变量 items_t是一个tuple,其中的每个元素都是int类型。
- 变量 items_s是一个set,其中的每个元素都是bytes类型。
字典
定义 dict 时,需要传入两个子类型,用逗号进行分隔。
第一个子类型声明 dict 的所有键。
第二个子类型声明 dict 的所有值:
from typing import Dict
def process_items(prices: Dict[str, float]):
    for item_name, item_price in prices.items():
        print(item_name)
        print(item_price)
这表示:
- 变量prices是一个dict:- 键都是str类型
- 值都是float类型
 
- 键都是
类作为类型
你也可以将类声明为变量的类型。
假设你有一个名为 Person 的类,拥有 name 属性:
class Person:
    def __init__(self, name: str):
        self.name = name
def get_person_name(one_person: Person):
    return one_person.name
接下来,你可以将一个变量声明为 Person 类型:
class Person:
    def __init__(self, name: str):
        self.name = name
def get_person_name(one_person: Person):
    return one_person.name
然后,你将再次获得所有的编辑器支持。
本文来自博客园,作者:花酒锄作田,转载请注明原文链接:https://www.cnblogs.com/XY-Heruo/p/15012540.html
 
                    
                
 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号