变量作用域
变量的作用域决定了程序中变量的可见性。
局部范围的变量
局部变量在功能块内定义或者声明。
这些变量不允许在功能块之外或者全局范围内使用。
局部作用域变量示例
def show():
text = "在show函数里面" #text 是局部作用域的变量
print(text)
# Global scope
s = "Python 变量范围"
show()
print(text) # 这行将报错
上述程序的输出是
在show函数里面
Traceback (most recent call last):
File "test.py", line 24, in <module>
print(text) # 这行将报错
NameError: name 'text' is not defined
因为text只能在函数中使用,全局中使用它将报错。
在局部范围内更改全局变量值的示例
# 全局变量
s = "Python 变量范围"
def show():
print(s) # 这行将报错
s = "在show函数中"
print(s)
show()
print(s)
上述程序的输出是
Traceback (most recent call last):
File "test.py", line 24, in <module>
show()
File "test.py", line 21, in show
print(s) # 这行将报错
UnboundLocalError: local variable 's' referenced before assignment
UnboundLocalError:赋值前引用了局部变量's'
在这个例子中我们不能改变全局变量的值。
当我们尝试更改值时,该行被假定为函数内部局部变量的声明。
我们不能在不创建变量的情况下使用它,因此错误将出现在程序的第 5 行。
使用 global 关键字更改全局变量值的示例
在变量的局部范围内改变全局变量的值, 同时使用 global 关键字来解决了上一个程序中出现的问题。
# 全局作用域
text = "Python变量的作用域"
def show():
global text
print(text)
text = "在show() 函数中"
print(text)
show()
print(text)
现在,在函数中,我们可以使用全局变量 text,而不会报错。
Python 变量用于存储不同类型的数据。
我们首先需要为变量分配一个数据,然后我们可以在程序的任何地方中使用。
on It Road.com
全局作用域变量
全局变量是在函数之外定义的,并且没有指定给任何函数。
这些变量可用于程序的任何部分。
全局作用域变量示例
def show():
print(s)
# 全局范围
s = "Python 变量范围"
show()
函数内部同名变量的全局作用域变量示例
def show():
s = "在show函数中"
print(s)
# Global scope
s = "Python 变量范围"
show()
print(s)
当我们调用 show() 函数时,优先使用函数内部的变量。
日期:2020-09-17 00:10:31 来源:oir作者:oir
