有没有办法从类声明中引用类名?示例如下:
class Plan(SiloBase):
cost = DataField(int)
start = DataField(System.DateTime)
name = DataField(str)
items = DataCollection(int)
subPlan = ReferenceField(Plan)
我有一个元类,它读取这些信息并进行一些设置,基类实现了一些常见的保存内容。我希望能够创建这样的递归定义,但到目前为止,在我的实验中,我还无法得到我想要的效果,通常会遇到“计划未定义”的错误。我知道发生了什么,类的名称不在类的范围内。
不完全是。在定义类的内容(例如作用域)时,尚未定义类的名称。
试试这个:
或按如下方式使用
__new__
:大多数使用元类的框架都提供了解决这个问题的方法。例如,Django:
Google App Engine:
解决方案的问题是,大多数ORM元类都希望在创建类时存在类属性,比如在以后附加属性或使用
__new__
。相关问题 更多 >
编程相关推荐