Python条件语法不规则

问题描述 投票:0回答:2

这是有效的:

def not_none(some_variable) -> bool:
    return some_variable != None

这也是有效的:

def not_none(some_variable) -> bool:
    return some_variable is not None

为什么无效?

def not_none(some_variable) -> bool:
    return some_variable not None

我认为它的含义与上一个相同。是否有任何不允许的理由?

python syntax
2个回答
0
投票
有一个一元not(取一个操作数,取反),和一个not运算符(对is not运算符的求反),但是,没有二进制is not运算符(取两个操作数)。

0
投票
is是一元运算符,它只接受一个参数(无论右边是什么)。与notnot进行比较,它们是

binary运算符,每个运算符都接受两个参数。

这是一个问题,因为实际上只有is not,您才有

!=

但是那没有道理。 not只是在调用return (someVariable) (not None)
之前浮在那儿。它不了解您的意图,因此会出现错误。 
© www.soinside.com 2019 - 2024. All rights reserved.