【问题标题】:How to make python method accept an expression as sqlalchemy does如何使python方法像sqlalchemy一样接受表达式
【发布时间】:2021-09-29 16:21:42
【问题描述】:

sqlalchemy 的 op 可以接受一个表达式,然后在方法的逻辑中对其进行评估,

import sqlalchemy as sa
sa.and_(table.col > 3)

这种魔法是怎么发生的?我检查了 sqlalchemy 的源代码,但没有任何线索。

【问题讨论】:

  • 我还发现了这个帖子,答案是this magic could not happen?stackoverflow.com/questions/1185199/…
  • 对于上述代码,您正在运行函数table.col.__gt__(3),它返回一个表达式类实例。然后将实例传递给and_()

标签: python sqlalchemy


【解决方案1】:

我尝试并发现它是 table.col 实例上发生的魔法,它由一个重新定义诸如 '=='、'>' 之类的操作的类初始化

【讨论】:

    猜你喜欢
    • 2011-02-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-30
    • 2013-01-25
    • 1970-01-01
    相关资源
    最近更新 更多