Skip to main content
 首页 » 编程设计

没有名字的 Python 表达式(如 LHS)

2025年05月04日15zhoujg

如果我在文件 sample.py 中写下面的两个语句

radius = 10 
 
2*radius 

和解释(>>>python -i sample.py),

为什么 python 不会在第二条语句 (2*radius) 出现错误时停止,这在语法/语义上看起来是错误的并且可能需要 LHS(name) 来绑定(bind) RHS 值?

我看到 Java 和 C 都不允许这样的语句,这些语句没有用,这与编译/解释版本无关。

请您参考如下方法:

Python 允许表达式独立存在而不是语句的一部分(赋值或其他)。

如果它没有,那么任何就地函数或方法调用也需要赋值:

listobject.sort()  # this is nothing more than an expression 

必须写成:

ignored = listobject.sort()  # assign None to ignored 

Python 无法知道您的表达式对其余代码没有影响; radius 可以引用具有 .__rmul__ method 的对象,它会在 Python 执行您的 2 * radius 表达式时被调用。

因此,最后,Python 会为您计算 2 * 10,丢弃结果,然后继续。