Isn';t关键字";及;python中的运算符?为什么?
我找不到python操作符的官方词汇表,但至少它似乎不包括Isn';t关键字";及;python中的运算符?为什么?,python,syntax,grammar,operator-keyword,keyword,Python,Syntax,Grammar,Operator Keyword,Keyword,我找不到python操作符的官方词汇表,但至少它似乎不包括和或或关键字。它们确实有运算符。和,但它是用于按位and运算符(&)。让我更困惑的是,它们确实包括is或not关键字作为运算符 简而言之,和(和或)不是操作员吗?如果不是,那么在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哇。也谢谢你。