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

dan*_*eld 0 python list python-2.x python-3.x python-typing

我对 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)
Run Code Online (Sandbox Code Playgroud)

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

谢谢你。

cri*_*sal 5

您可以使用类型提示。但是请注意,这不是强制执行的,而是引导您 - 和 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)
Run Code Online (Sandbox Code Playgroud)