如果我在文件 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,丢弃结果,然后继续。
