Python 类型提示

意义

类型提示可以用来指定变量、函数参数和返回值的类型等,以帮助提高代码的可读性和可维护性
在使用 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

猜你喜欢

转载自blog.csdn.net/e5pool/article/details/130445557