我有一个SQLAlchemy查询,它是iterable,假设它是一个名为query
的对象。当您对其进行迭代时,会得到如下项:
Table1('Column1', 'Column2')
在查询对象上联接表并对其进行迭代时,会得到元组:
(Table1('Column1', 'Column2'), Table2('Column3', 'Column4'))
我知道我可以使用生成器对查询对象进行迭代,如下所示:
(each[0] for each in query)
但这并没有保留对象query
上的任何其他方法,而是将其转换为生成器对象。有没有一种简单的方法来改变query
的迭代部分的行为,而不使用其他方法?你知道吗
我明白了,我只需要使用
__getattr__
转发对另一个对象的访问,并用新功能定义__iter__
。只要我不调用任何其他方法来扩展查询,它就可以使用SQLAlchemy,如果没有这些更改,它将创建一个新对象。我在计划迭代对象之前,通过包装对象来避免这种情况。你知道吗输出:
相关问题 更多 >
编程相关推荐