淘先锋技术网

首页 1 2 3 4 5 6 7

Python 是一种动态类型的脚本语言,变量可以在程序中任何地方使用和修改。Python 变量作用域分为两种:全局变量和局部变量。

全局变量

全局变量在函数外部定义,可以被所有函数访问。但是,在函数内部如果想修改全局变量的值,需要使用global关键字。

num = 10
def change_num():
global num
num = 20
print(num)        # Output: 10
change_num()
print(num)        # Output: 20

局部变量

局部变量是在函数内部定义的变量,只能在函数内部访问。函数执行结束后,局部变量会被销毁。

def greeting():
message = "Hello, world!"
print(message)
greeting()       # Output: Hello, world!
print(message)   # NameError: name 'message' is not defined

非局部变量

非局部变量指的是在嵌套函数中使用的变量,不是全局变量,也不是局部变量。如果想在嵌套函数中访问外部函数中定义的变量,需要使用nonlocal关键字。

def outer():
num = 10
def inner():
nonlocal num
num = 20
inner()
print(num)    # Output: 20
outer()

需要注意的是,Python 的变量作用域与其他语言不同,不需要使用声明变量的关键字,只需要给变量赋值即可。另外,在函数内部如果访问未定义的变量,会抛出NameError异常。