我正在学习SQLAlchemy
,我正在阅读的所有教程/相关问题(例如this tutorial,this question或this documentation)都使用范例
[__NSArrayM objectForKeyedSubscript:]: unrecognized selector sent to instance 0x1740571c0
它依赖于import sqlalchemy as sqla
DeclarativeBase = sqla.ext.declarative.declarative_base()
class TableModel(DeclarativeBase):
"""SQLAlchemy Model for a Table.
"""
__tablename__ = "some_table"
id = sqla.Column(sqla.Integer, primary_key=True)
...
的全局实例。这看起来很奇怪,因为如果我在许多其他模块/脚本中导入此代码,实例将在执行中的某个随机点创建,而不是完全定义。我想它似乎只是非pythonic或穷人OOP ......
为什么这是完全有效的,坚固的设计?或者这只是SQLAlchemy-101版本,还有更强大的模式吗?