如果类引用了自己的类型,是否为pythonic?

时间:2019-04-12 11:32:08

标签: python class types

我想在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还是一个坏主意?这实际上不会执行类型检查,因此它不会引发任何错误。但是它仍然可用作类型提示吗?

据我了解,只要在阅读代码时仅使用这些注释,就可以了。但是我不知道它们是否以其他任何形式使用可能会引起问题。

0 个答案:

没有答案