db = Database()
class Person(db.Entity):
name = Required(str)
age = Required(int)
cars = Set('Car')
问题:(第1)在给出的示例中,人真的是从实例(db)继承的,还是其他事情正在发生? (第二)我将如何将人(和其他类)放在自己的文件中并共享DB实例?
我正在运行python3.4.
print(type(db.Entity)) # yields: <class 'pony.orm.core.EntityMeta'>
当然,不可能从一个实例继承。
db
可能是
Database
db.Entity
如果您在运行时不实例化self.Entity = type.__new__(EntityMeta, 'Entity', (Entity,), {})
变量,这很棘手。您必须选择:在程序启动时实例化db
并照常定义您的
db
类,或者将类定义推迟到创建Person
db
。
将其分配到多个文件中很容易。在file a.py中,您实例化
db
:
db
db = Database()
在b.py中,您只是导入A:
from A import db
class Person(db.Entity):