Python变量作用域(全局变量和局部变量)
发布网友
发布时间:2024-08-17 12:58
我来回答
共1个回答
热心网友
时间:2024-08-17 19:39
在Python中,变量的作用域对其可访问范围起着决定性作用。主要有两种变量类型:局部变量和全局变量,它们的定义位置决定了其作用范围的不同。
局部变量是在函数内部定义的,其作用仅限于该函数内部,一旦函数执行完毕,这些变量就会从内存中被释放,尝试在函数外部使用它们会导致 NameError。例如:
执行结果:NameError: name 'local_var' is not defined
函数的参数同样被视为局部变量,仅在函数内部有效。而全局变量则是在所有函数外部定义的,可以被程序中的任何函数访问和修改。
定义全局变量的方式有:在函数体外直接定义或使用global关键字声明。全局变量的作用域是整个程序。例如:
执行结果:global_var = 100
要获取特定作用域内的变量,Python提供了globals(), locals(), 和 vars() 函数。globals() 返回当前全局变量的字典,locals() 返回当前作用域(局部或全局)的变量字典,而 vars() 则根据传入的对象返回其范围内的变量字典。例如:
globals():{'global_var': 100}
locals():{'local_var': 200}
请注意,尽管locals()可以访问局部变量,但不能直接修改其值。学习更深入的 Python 内部机制时,vars() 函数将在理解类和对象时提供更多的功能。