【发布时间】:2019-02-20 01:33:57
【问题描述】:
我有一个包含许多模型和许多基于类的视图的 Web 应用程序。大部分代码是这样的
from typing import TypeVar, Type
M = TypeVar('M', bound='Model')
TypeModel = Type[M]
# ---------- models
class Model:
@classmethod
def factory(cls: TypeModel) -> M:
return cls()
class ModelOne(Model):
def one(self):
return
class ModelTwo(Model):
def two(self):
return
# ---------- views
class BaseView:
model: TypeModel
@property
def obj(self) -> M:
return self.model.factory()
def logic(self):
raise NotImplementedError
class One(BaseView):
model = ModelOne
def logic(self):
self.obj. # how can i get suggest of methods of ModelOne here?
...
class Two(BaseView):
model = ModelTwo
def logic(self):
self.obj. # how can i get suggest of methods of ModelTwo here?
...
我想要一个属性obj,它是视图中指定模型的实例。我怎样才能做到这一点?
谢谢
【问题讨论】:
标签: python inheritance type-hinting