意义
类型提示可以用来指定变量、函数参数和返回值的类型等,以帮助提高代码的可读性和可维护性
在使用 PyCharm 过程中,有时导入第三方包,模块中的一些功能属性或方法没法自动提示,都可以通过这种方式来解决
举例说明
要指定一个变量的类型为字符串,可以这样做:
my_string: str = "Hello, world!"
指定一个函数参数的类型为整数和字符串,则可以这样做:
def my_function(number: int, text: str) -> str:
return text * number
这里,还用类型提示-> str
指定函数的返回值类型为字符串
此外在 Python 3.5+ 版本中还可以用类型注释来指定类的属性和方法的类型
例如,有一个 Person 类,使用类型注释指定name属性的类型为字符串,如下所示:
class Person:
def __init__(self, name: str):
self.name = name
在这个例子中,构造函数__init__接受一个字符串参数name,并将其赋值给self.name属性
还可以使用类型注释来指定类方法的参数和返回值的类型。例如:
class Person:
def __init__(self, name: str):
self.name = name
def say_hello(self, other_person: 'Person') -> str:
return f"Hello, {other_person.name}! My name is {self.name}."
say_hello方法接受一个Person类型的参数other_person,并返回一个字符串
如果遇到类型不确定时,可以使用 Union来搞定。以下是一个使用Union类型注释的示例:
from typing import Union
def add(a: Union[int, float], b: Union[int, float]) -> Union[int, float]:
return a + b
注意,Union需要使用from typing import Union
导入。除了Union之外,Python类型注释还支持其他类型注释,如List、Tuple、Dict等
经验举例
比如使用 openpyxl
包时,获取到单元格对象后,希望使用单元格对象的 coordinate
属性来获取单元格坐标,那 PyCharm 可能不会自动提示,我们就可以利用类型提示来让其自动提示
比如:
cell_obj:Cell = worksheet.cell(1, 1) # cell_obj = worksheet.cell(1, 1)
然后 cell_obj.c 后面就会有自动提示项了
注意:这个 Cell
类是需要导入的,这是因为指定了类型的缘故
from openpyxl.cell.cell import Cell