我希望能够传递这样的参数:
fn(a>=b) or fn(a!=b)
我在DjangoORM和SQLAlchemy中看到了这种行为,但我不知道如何实现它。
答案 0 :(得分:8)
ORM在a
和b
的类上使用special methods来挂钩运算符并自定义生成的内容。
>=
for由object.__ge__()
method处理,而!=
则调用object.__ne__()
。
通常,用于a
的ORM对象返回一个应用了操作的新对象,允许您链接操作,fn()
函数需要这样一个ORM对象,并将从中读取操作状态那里。