在Python中,if语句内部的变量作用域是否在if语句外部可见?(来自Java背景,所以觉得有点奇怪)
在以下情况下,名称首先在if块内部定义,但变量也在if块外部可见。我原以为会出错,但“乔”被打印出来了。
if 1==1: name = 'joe' print(name)
if
语句不在Python中定义作用域。
循环、with
语句、try
/except
等也不做
只有模块、函数和类定义作用域。
请参见Python教程中的Python Scopes and Namespaces。