請考慮這個片段的蟒蛇3.5代碼:如何註釋返回一個特定類型的方法(或亞型)
class Foo:
pass
class Bar(Foo):
pass
class AbstractSomething:
def get_foobinator_type(self):
return Foo
我想註釋(using PEP-0484 annotations)get_foobinator_type
方法的返回值說: 「它返回一個類型,即Foo
或其任何子類型」。
我沒有找到任何明智的方式在Python中做到這一點。下面是明顯錯誤的做法:
以下:
def get_foobinator_type(self) -> Foo
意味着這個方法返回一個實例Foo
。以下內容:
def get_foobinator_type(self) -> type
意味着此方法返回一個類型,但遺憾的是,沒有關於這需要是Foo
的子類型的信息。
以Java術語來說,我想要有像這樣的簽名的方法:Class<Foo> getFoobinatorType()
。
我強烈懷疑是這樣。我不使用靜態類型檢查器,我主要使用類型提示來記錄API並更好地完成代碼完成。 –