【发布时间】:2020-03-12 02:25:38
【问题描述】:
我正在寻找一种将动态属性添加到类(而不是实例)的方法。像 Django 对模型管理器所做的事情。基本上我想要实现的是:
class Manager:
def __init__(self, table_name):
self.table_name = table_name
# rest omitted for brevity
class BaseModel:
# somehow create a new instance of Manager
# and send the init param based off BaseModel's child
# class table_name Meta property
class MyModel(BaseModel):
class Meta:
table_name = 'my_table'
MyModel.manager # should return an instance of Manager(table_name='my_table')
我尝试过使用构造函数 (__new__),但这显然只有在我创建了至少一个 MyModel 的实例后才有效。
【问题讨论】:
标签: python python-3.x