Python 的 not() 函数不是普通函数?

del*_*eet 1 python python-3.x

所以我知道 python 有 not 运算符,但是 not() 函数是如何发挥作用的?

从一些简单的测试来看,它似乎具有 not(args[]) 的签名,同时又不完全像一个普通函数。例如:

x = True
not x # -> False
not(x) # -> False
x = False
not x # -> True
not(x) # -> True

not(0) # -> True
not(1) # -> False
not(0, 0, 0) # -> False
not("False") # -> False

function = not # -> Syntax Error
Run Code Online (Sandbox Code Playgroud)

为什么这存在于“不是”,而不是像“或”这样的东西?有没有办法可以将 not 函数捕获到变量中/不作为函数进行其他操作?

这个问题主要是因为试图找到一个函数来反转 map 调用中的列表,即使它是一个内部函数

Cub*_*bic 5

没有not功能。只有操作员not。添加括号只是在表达式周围添加括号;它不是函数调用(即not(x)与 完全相同not x)。not(0,0,0)只是not应用于 tuple的运算符(0,0,0),它不是“falsey”,因此结果为 false。

(请注意,这是 Python 中的具体情况,其他语言可能有not作为函数或其他某种方式来not完全表达)。

  • `or` 不是一元运算符;它是一个二元运算符。如果使用两个括号表达式“(a)”和“(b)”,“(a) 或 (b)” 就可以正常工作。`or(1)` 不起作用与括号无关。 (2认同)