通过!,!=,〜,<,>作为参数

时间:2015-10-04 13:35:35

标签: python arguments params args kwargs

我希望能够传递这样的参数:

fn(a>=b) or fn(a!=b)

我在DjangoORM和SQLAlchemy中看到了这种行为,但我不知道如何实现它。

1 个答案:

答案 0 :(得分:8)

ORM在ab的类上使用special methods来挂钩运算符并自定义生成的内容。

>= for由object.__ge__() method处理,而!=则调用object.__ne__()

通常,用于a的ORM对象返回一个应用了操作的新对象,允许您链接操作,fn()函数需要这样一个ORM对象,并将从中读取操作状态那里。