为什么python不支持三元表达式中的'pass'?

Pyt*_*ner 3 python

我写了以下代码,结果如下SyntaxError: invalid syntax:

self.vec.append(v1) if v1 else pass
Run Code Online (Sandbox Code Playgroud)

我认为它会像这段代码一样:

if v1:
    self.vec.append(v1)
Run Code Online (Sandbox Code Playgroud)

只是想知道为什么python在支持时不支持这种语法:

self.vec.append(v1) if v1 else 0 
Run Code Online (Sandbox Code Playgroud)

Mat*_*haq 5

append返回的NoneNoneType.

>>> type([].append(420))
<class 'NoneType'>
Run Code Online (Sandbox Code Playgroud)

pass 仅用于流量控制(NOOP)且没有类型.

>>> type(pass)
Syntax Error
Run Code Online (Sandbox Code Playgroud)

三元声明要求:

object = object if BoolExpr else object
Run Code Online (Sandbox Code Playgroud)

pass不是object!