📅  最后修改于: 2023-12-03 15:04:41.658000             🧑  作者: Mango
类型提示是Python 3.5引入的一个新特性,它可以显式地指定函数和方法的参数和返回值的类型信息,使得代码更加易于阅读和维护。Python类型提示可以通过注释或函数签名来实现,比如:
def greet(name: str) -> str:
return f"Hello, {name}!"
上面的例子中,函数greet
的参数name
和返回值都是字符串类型。在注释中使用类型提示时,需要在变量或函数名后加上冒号和类型名,例如name: str
。如果函数的返回值是None
,可以使用特殊的类型名None
,例如def func() -> None:
。下面是一些常见的数据类型及其类型名:
| 数据类型 | 类型名 |
| --- | --- |
| 整数 | int
|
| 浮点数 | float
|
| 布尔值 | bool
|
| 字符串 | str
|
| 列表 | List
|
| 元组 | Tuple
|
| 字典 | Dict
|
| 集合 | Set
|
除了以上数据类型,Python还支持自定义类。如果要对自定义类进行类型提示,可以使用类名来指定类型。下面是一个例子:
class Person:
def __init__(self, name: str, age: int) -> None:
self.name = name
self.age = age
def greet(self) -> str:
return f"Hello, my name is {self.name}. I am {self.age} years old."
上面的例子中,类Person
有两个属性name
和age
,它们分别是字符串和整数类型。类中还有一个方法greet
,返回一个字符串类型。在类中使用类型提示时,需要在属性或方法名后加上冒号和类型名,例如name: str
和greet() -> str
。
除了以上数据类型,Python还支持一些其他的类型提示,下面是一些例子:
Union[T1, T2, ...]
:表示参数或返回值可以是多个类型中的任意一个,例如Union[int, float]
表示参数可以是整数或浮点数。Any
:表示参数或返回值可以是任意类型,等价于不使用类型提示,例如def func(x: Any) -> Any: return x
。Optional[T]
:表示参数或返回值可以是类型T
或None
,等价于Union[T, None]
,例如def foo(x: Optional[int]) -> Optional[str]:
。使用类型提示可以使代码更加健壮和易于阅读,也便于IDE进行代码补全和提示。但是在使用类型提示时需要保证自己熟悉各种数据类型及其用法,防止出现类型错误导致程序崩溃。