Python中的类型提示(Type Hinting)语法允许开发者在代码中指定变量、函数参数以及函数返回值的预期类型,从而提高代码的可读性和可维护性,并支持静态类型检查工具。以下是一些基本的类型提示语法示例:
- 变量类型提示:
age: int = 25 # 声明变量age为整数类型
name: str = "Alice" # 声明变量name为字符串类型
is_student: bool = True # 声明变量is_student为布尔类型
scores: List[int] = [85, 90, 95] # 声明scores为整数列表类型,需要导入typing模块
person: dict[str, Union[str, int]] = {"name": "Bob", "age": 30} # 声明person为字典类型,键为字符串,值为字符串或整数类型
- 函数参数类型提示:
from typing import List
def greet(name: str) -> str:
return f"Hello, {name}"
def calculate_average(numbers: List[float]) -> float:
sum_num = sum(numbers)
return sum_num / len(numbers)
在上述例子中:
greet
函数期望接受一个字符串参数,并返回一个字符串。calculate_average
函数期望接受一个浮点数列表,计算平均值后返回一个浮点数。
- 类方法和类属性类型提示:
class Person:
def __init__(self, name: str, age: int) -> None:
self.name: str = name
self.age: int = age
def introduce(self) -> str:
return f"My name is {self.name}, and I am {self.age} years old."
在此例中,Person
类的构造函数 __init__
需要一个字符串和一个整数作为参数,并且类的属性 name
和 age
分别具有类型提示为字符串和整数。introduce
方法返回一个字符串。注意类型提示也可以放在等号后面(即属性初始化处)来为类属性指定类型。
为了使用更复杂的类型,比如联合类型、可选类型、类型别名等,需要导入 typing
模块。Python 3.9及以后版本中,许多常用的类型可以直接导入,不需要再从 typing
导入。例如:
from typing import Union, Optional
def get_info(user_id: int) -> Optional[dict[str, str]]:
# 返回用户的详细信息字典,如果没有找到则返回None
pass
在这个例子中,get_info
函数返回一个可选的字典类型,表示可能返回一个键值对都是字符串的字典,也可能返回 None
。