所以我有一个关于声明式 SQLAlchemy 的有趣用例:我需要定义大约十个不同的 sqlalchemy 类,每个类有几百列。但是,这些对象本质上将存储一个数据“通道”数组,因此列将被命名:
channel_51, channel_52 ... channel_272, channel_273
我可以使用声明的类维护一个巨大的文件,但每个类将始终是 channel_n 到 channel_m 的那种形式。有没有办法把它变成每个类的几行代码而不是 300 行?挑战在于它们需要在顶层定义以便对metadata.create_all()
函数可见,并且不能在初始化期间添加到类中。我想要的东西相当于:
for i in range(n,m):
setattr(self, 'channel_%d' %i, Column(sqlalchemy.types.Float))
除了它需要在类的顶层工作