擅长:python、mysql、java
<p>如果将“op”设为函数,则可以实现示例:</p>
<pre><code>>>> def magic(left, op, right):
... return op(left, right)
...
>>> magic(5, (lambda a, b: a == b), 5)
True
>>> magic(5, (lambda a, b: a == b), 4)
False
</code></pre>
<p>这比传递字符串更像是Python。这就是像<a href="http://wiki.python.org/moin/HowTo/Sorting" rel="nofollow noreferrer">^{<cd1>}</a>这样的函数的工作原理。</p>
<p>那些带有<code>filter()</code>的SQLAlchemy示例令人费解。我不知道SQLAlchemy的内部原理,但我猜在一个类似<code>query.filter(User.name == 'ed')</code>的例子中,<code>User.name</code>是一个特定于SQLAlchemy的类型,有一个<code>__eq()</code>函数的奇怪实现,它为<code>filter()</code>函数生成SQL,而不是进行比较。Ie:他们制作了一些特殊的类,可以让您键入发出SQL代码的Python表达式。这是一种不寻常的技术,除非构建一种连接两种语言的东西,比如ORM,否则我会避免这种技术。</p>