Discuss / Python / 这里有点疑惑

这里有点疑惑

Topic source
# 创建对象的基类:
Base = declarative_base()

# 定义User对象:
class User(Base):

为什么Base作为一个实例化对象能被继承,继承不是应该继承一个类吗

廖雪峰

#2 Created at ... [Delete] [Delete and Lock User]

函数也可以返回class:

>>> class Base():
...     pass
... 
>>> def get_base():
...     return Base
... 
>>> Parent = get_base()
>>> class Child(Parent):
...     pass
... 
>>> 

实际上Base和Parent是一样的:

>>> Parent==Base
True

我明白了,这个Base的类型不是type,而是sqlalchemy.orm.decl_api.DeclarativeMeta,这个sqlalchemy.orm.decl_api.DeclarativeMeta应该是一个元类


  • 1

Reply