变量作用域
变量的作用域决定了程序中变量的可见性。
局部范围的变量
局部变量在功能块内定义或者声明。
这些变量不允许在功能块之外或者全局范围内使用。
局部作用域变量示例
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