當我定義一個類時,如何在其方法的簽名中包含參數,而這些參數必須是同一類?我建立它應該像這樣的圖形結構,但這裏是一個簡單的例子:類型(方法)的方法簽名參數
class Dummy:
def __init__(self, value: int, previous: Dummy=None):
self._value = value
self._previous = previous
@property
def value(self):
return self._value
def plus_previous(self):
return self.value + self._previous.value
d1 = Dummy(7)
d2 = Dummy(3, d1)
d2.plus_previous()
這將導致以下錯誤:
NameError: name 'Dummy' is not defined
我的意思是,我能做到這一點了Python 2的方式,但我希望有比這更蟒蛇-3-IC解決方案:
class Dummy:
def __init__(self, value: int, previous=None):
assert type(previous) is Dummy or previous is None
...
PS:很明顯,我不能使用: 類型(個體經營) 自我未簽名沒有定義。我只能這樣做: assert type(previous)is type(self) 這至少是一個小改進 –
另外,你意識到類型提示不會像'assert'語句那樣工作,對嗎?他們沒有執行。他們是*提示*。 –