如何为 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)
我是 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)