变量作用域

变量的作用域决定了程序中变量的可见性。

局部范围的变量

局部变量在功能块内定义或者声明。
这些变量不允许在功能块之外或者全局范围内使用。

局部作用域变量示例

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 中变量的作用域

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