Isn';t关键字";及;python中的运算符?为什么?

Isn';t关键字";及;python中的运算符?为什么?,python,syntax,grammar,operator-keyword,keyword,Python,Syntax,Grammar,Operator Keyword,Keyword,我找不到python操作符的官方词汇表,但至少它似乎不包括和或或关键字。它们确实有运算符。和,但它是用于按位and运算符(&)。让我更困惑的是,它们确实包括is或not关键字作为运算符 简而言之,和(和或)不是操作员吗?如果不是,那么在Python中作为操作符的标准是什么?我认为我对python非常熟悉,但这个问题现在让我很困惑。是的,它是一个运算符。但它与操作符模块中的其他操作符不同 和短路(即,它仅在必要时评估其第二个参数)或类似。因此,两者都不能作为函数编写,因为函数的参数总是在调用函数之

我找不到python操作符的官方词汇表,但至少它似乎不包括
关键字。它们确实有
运算符。和
,但它是用于按位and运算符(
&
)。让我更困惑的是,它们确实包括
is
not
关键字作为运算符


简而言之,
(和
)不是操作员吗?如果不是,那么在Python中作为操作符的标准是什么?我认为我对python非常熟悉,但这个问题现在让我很困惑。

是的,它是一个运算符。但它与
操作符
模块中的其他操作符不同

短路(即,它仅在必要时评估其第二个参数)
类似。因此,两者都不能作为函数编写,因为函数的参数总是在调用函数之前进行完全求值。在某些情况下,这并没有真正的区别,但当第二个参数包含带有副作用的函数调用(如I/O)或冗长的计算时,
的行为与函数调用的行为非常不同

您可以通过至少将第二个参数作为函数传递来实现它:

def logical_and(a, b):
    if not a:
       return a
    return b()
那么你可以这样称呼它:

logical_and(x, lambda: y)

但这是一个相当非正统的函数调用,与其他操作符的工作方式不匹配,因此Python开发人员没有包含它并不奇怪。

是的,它是一个操作符。但它与
操作符
模块中的其他操作符不同

短路(即,它仅在必要时评估其第二个参数)
类似。因此,两者都不能作为函数编写,因为函数的参数总是在调用函数之前进行完全求值。在某些情况下,这并没有真正的区别,但当第二个参数包含带有副作用的函数调用(如I/O)或冗长的计算时,
的行为与函数调用的行为非常不同

您可以通过至少将第二个参数作为函数传递来实现它:

def logical_and(a, b):
    if not a:
       return a
    return b()
那么你可以这样称呼它:

logical_and(x, lambda: y)

但这是一个相当非正统的函数调用,与其他运算符的工作方式不匹配,因此Python开发人员没有包括它,我并不感到惊讶。

都是运算符,但它们不能像其他一些运算符那样被重写。另请参见
都是运算符,但是它们不能像其他一些操作符那样被覆盖。请参见,非常感谢。现在我明白你的意思了。为了澄清,我们可以说
是python中的运算符,对吗?是的,它们肯定是运算符。@DerekKim在python控制台中,调用
help()
输入
operators
,如果您仍有疑问,您将看到它们列在那里。@progmatico哇。我也谢谢你,非常感谢。现在我明白你的意思了。为了澄清,我们可以说
是python中的运算符,对吗?是的,它们肯定是运算符。@DerekKim在python控制台中,调用
help()
输入
operators
,如果您仍有疑问,您将看到它们列在那里。@progmatico哇。也谢谢你。