为什么我可以访问Python中函数外部有条件定义的变量? 我是C、C++和java背景的。因此,我很想知道为什么以下Python代码可以工作: def f1(): print(xy) if __name__ == "__main__": print("Hello") xy = 34 f1()
它打印为什么我可以访问Python中函数外部有条件定义的变量? 我是C、C++和java背景的。因此,我很想知道为什么以下Python代码可以工作: def f1(): print(xy) if __name__ == "__main__": print("Hello") xy = 34 f1(),python,Python,它打印 Hello 34 如何在函数f1中访问xyxy未在f1中定义,如果中的xy是在的条件块中定义的,前提是 全局变量 在Python中,在函数外部或全局函数中声明的变量 作用域称为全局变量。这意味着,全局变量可以是 在函数内部或外部访问 在许多或大多数其他编程语言中,如果不声明变量,则将变量视为全局变量,而Python则以另一种方式处理变量。它们是本地的,如果没有另外声明的话 def f(): print(x) x = "Something" f() 这会打印“某物”这能回答您的问
Hello
34
如何在函数f1
中访问xy
xy
未在f1
中定义,如果中的xy是在的条件块中定义的,前提是
全局变量
在Python中,在函数外部或全局函数中声明的变量
作用域称为全局变量。这意味着,全局变量可以是
在函数内部或外部访问
在许多或大多数其他编程语言中,如果不声明变量,则将变量视为全局变量,而Python则以另一种方式处理变量。它们是本地的,如果没有另外声明的话
def f():
print(x)
x = "Something"
f()
这会打印“某物”这能回答您的问题吗?Python没有在
C++
中使用的封闭作用域。在第xy=34
行,变量xy
被输入本地模块范围。但在您的示例中,x
是全局变量。这很好,我可以将其理解为全局变量。我不明白的是,xy
变量是在if
条件下定义的。一个if
条件变量如何在其块外访问?if语句不是函数,函数中声明的变量是局部变量,函数外声明的所有变量都是全局变量