在if语句中初始化的变量的作用域是什么?
我是Python的新手,所以这可能是一个简单的范围界定问题。Python文件(模块)中的以下代码使我有些困惑:
if __name__ == '__main__': x = 1
print x
在我使用过的其他语言中,此代码将引发异常,因为该x
变量是if
语句的局部变量,不应在该变量之外存在。但是此代码将执行并打印1。任何人都可以解释此行为吗?是否在模块中创建的所有变量都是全局的/可用于整个模块?
回答:
Python变量的作用域是分配给它们的最里面的函数,类或模块。控制块(如if
和while
块)不计在内,因此在内分配的变量的if作用域仍限于函数,类或模块。
(由生成器表达式或list / set / dict
理解定义的隐式函数与lambda表达式一样进行计数。你不能将赋值语句填充到任何一个中,但是lambda参数和for
子句目标是隐式赋值。)
以上是 在if语句中初始化的变量的作用域是什么? 的全部内容, 来源链接: utcz.com/qa/426846.html