【问题标题】:Pass !, !=, ~, <, > as parameters传递 !, !=, ~, <, > 作为参数
【发布时间】:2016-01-01 06:02:14
【问题描述】:

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

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

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

【问题讨论】:

  • 这不是你所要求的,但在一般情况下你可以通过例如operator.ne(对于!=)和operator.gt(对于&gt;)左右

标签: python arguments params args keyword-argument


【解决方案1】:

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

&gt;= for 由object.__ge__() method 处理,而!= 调用object.__ne__()

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

【讨论】:

    猜你喜欢
    • 2016-04-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-15
    相关资源
    最近更新 更多