如何为 Python 变量显式指定 class 类型?

How can I explicitly specify a class type for a Python variable?

我是 Python 的新手,来自 Java 背景。我有这样的东西:

class A:
    def __init__(self):
        self.var1 = 1
        self.var2 = 2

class B:
    def __init__(self):
        self.my_list = []

    def add(self, a_object):
        self.my_list.append(a_object)

    def show(self):
        for a_object in self.my_list:
            print(a_object.var1, a_object.var2)

现在,我知道这段代码会 运行 但我的问题是是否有任何方法可以在 show 方法中指定 a_object 变量实际上是一个类型的对象A(就像类型转换——我会在 java 中写的东西,比如 (A)a_object)。我首先希望这样做是为了提高代码的可读性和自动完成功能。我想另一种解决方案是键入列表,如果可能的话我也很好奇。

谢谢。

您可以使用类型提示。但是请注意,这不是强制执行的,而是会引导您 - 和 IDE - 了解您是否传递了正确的参数。

如果您对静态类型感兴趣,您还可以查看 mypy

from typing import List


class A:
    def __init__(self):
        self.var1 = 1
        self.var2 = 2

class B:
    def __init__(self):
        self.my_list: List[A] = []

    def add(self, a_object: A):
        self.my_list.append(a_object)

    def show(self):
        for a_object in self.my_list:
            print(a_object.var1, a_object.var2)