我想在Python中定义一个类,该类具有带类型提示的方法。其中一种类型是类类型本身:
class TestClass(object):
def __init__(self, value):
self.value = value
def add_ref(self, ref: TestClass):
self.ref = ref
a = TestClass(1)
b = TestClass(2)
a.add_ref(b)
print(a.ref.value)
这无效,因为在定义TestClass
方法时尚未定义add_ref
。 (NameError: name 'TestClass' is not defined
)
如果我将方法更改为
def add_ref(self, ref: 'TestClass'): # use string of type instead of actual type
self.ref = ref
有效。
这是pythonic还是一个坏主意?这实际上不会执行类型检查,因此它不会引发任何错误。但是它仍然可用作类型提示吗?
据我了解,只要在阅读代码时仅使用这些注释,就可以了。但是我不知道它们是否以其他任何形式使用可能会引起问题。