在if语句中初始化的变量的作用域是什么?

奶油色

我是Python的新手,所以这可能是一个简单的范围界定问题。Python文件(模块)中的以下代码使我有些困惑:

if __name__ == '__main__':
    x = 1

print x

在我使用过的其他语言中,此代码将引发异常,因为该x变量是if语句的局部变量,不应在该变量之外存在。但是此代码将执行并打印1。有人可以解释此行为吗?是否在模块中创建的所有变量都是全局的/可用于整个模块?

卢克·莫拉(Luke Maurer):

Python变量的作用域是分配给它们的最里面的函数,类或模块。控制块(如ifwhile块)不计在内,因此在内分配的变量的if作用域仍限于函数,类或模块。

(由生成器表达式或list / set / dict理解定义的隐式函数与lambda表达式一样进行计数。您不能将赋值语句填充到其中任何一个中,但是lambda参数和for子句目标是隐式赋值。)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在 switch 语句中初始化变量

来自分类Dev

在“ if”语句中初始化变量

来自分类Dev

宏的 if 语句中的变量初始化

来自分类Dev

为什么允许在switch语句中声明变量?但不是声明+初始化?

来自分类Dev

在switch语句中初始化变量(int32)

来自分类Dev

跳转绕过switch语句中的变量初始化

来自分类Dev

case语句中未初始化的变量

来自分类Dev

golang if初始化语句的作用域为内部if块。为什么?

来自分类Dev

为什么angularjs作用域在初始化之前允许访问变量

来自分类Dev

if语句中的结构初始化

来自分类Dev

用服务器端数据初始化作用域变量的更好方法是什么?

来自分类Dev

“变量可能尚未初始化”是什么意思?

来自分类Dev

“变量可能尚未初始化”的设计原理是什么?

来自分类Dev

初始化我的数字变量的正确方法是什么?

来自分类Dev

在C ++中初始化变量的正确方法是什么

来自分类Dev

在TensorFlow中初始化变量的最佳方法是什么?

来自分类Dev

用作自己的初始化程序的未初始化变量的行为是什么?

来自分类Dev

在单个语句中用不同的值初始化不同的变量

来自分类Dev

在一个语句中初始化多个变量会导致NullReferenceException

来自分类Dev

在张量流中初始化变量,变量作用域和import_graph_def

来自分类Dev

为什么只能在一个语句中声明和初始化var?

来自分类Dev

为什么无法在Swift的Switch语句中初始化类

来自分类Java

switch语句未初始化的变量

来自分类Java

在为什么初始化字符串if语句似乎比在switch语句中有什么不同?

来自分类Dev

在控制器和postLink初始化之后,在指令中重置作用域变量;

来自分类Dev

带有函数作用域静态变量初始化的 threadprivate

来自分类Dev

Go if语句中的多个初始化器

来自分类Dev

如何访问在try语句中初始化的对象

来自分类Dev

在单个语句中初始化Go地图

Related 相关文章

  1. 1

    在 switch 语句中初始化变量

  2. 2

    在“ if”语句中初始化变量

  3. 3

    宏的 if 语句中的变量初始化

  4. 4

    为什么允许在switch语句中声明变量?但不是声明+初始化?

  5. 5

    在switch语句中初始化变量(int32)

  6. 6

    跳转绕过switch语句中的变量初始化

  7. 7

    case语句中未初始化的变量

  8. 8

    golang if初始化语句的作用域为内部if块。为什么?

  9. 9

    为什么angularjs作用域在初始化之前允许访问变量

  10. 10

    if语句中的结构初始化

  11. 11

    用服务器端数据初始化作用域变量的更好方法是什么?

  12. 12

    “变量可能尚未初始化”是什么意思?

  13. 13

    “变量可能尚未初始化”的设计原理是什么?

  14. 14

    初始化我的数字变量的正确方法是什么?

  15. 15

    在C ++中初始化变量的正确方法是什么

  16. 16

    在TensorFlow中初始化变量的最佳方法是什么?

  17. 17

    用作自己的初始化程序的未初始化变量的行为是什么?

  18. 18

    在单个语句中用不同的值初始化不同的变量

  19. 19

    在一个语句中初始化多个变量会导致NullReferenceException

  20. 20

    在张量流中初始化变量,变量作用域和import_graph_def

  21. 21

    为什么只能在一个语句中声明和初始化var?

  22. 22

    为什么无法在Swift的Switch语句中初始化类

  23. 23

    switch语句未初始化的变量

  24. 24

    在为什么初始化字符串if语句似乎比在switch语句中有什么不同?

  25. 25

    在控制器和postLink初始化之后,在指令中重置作用域变量;

  26. 26

    带有函数作用域静态变量初始化的 threadprivate

  27. 27

    Go if语句中的多个初始化器

  28. 28

    如何访问在try语句中初始化的对象

  29. 29

    在单个语句中初始化Go地图

热门标签

归档