在 Python 中,变量是有一定的作用域(也就是变量的有效范围)的。变量作用域指定了我们可以访问变量的区域。根据变量的作用域的不同,我们可以将变量分为以下 2 种:
- 全局变量
- 局部变量
Python 全局作用域
在 Python 中,全局变量具有全局作用域。全局变量一般在主程序中定义,其有效范围是从定义开始,一直到整个程序结束为止。说白了,全局变量在任何地方都可以用。
示例 1:使用全局变量
site = '绿叶网'
def greet():
s = f'欢迎来到{site}'
print(s)
greet()
print(site)运行结果如下。
欢迎来到绿叶网
绿叶网分析:
上面例子定义了一个名为 site 的全局变量,该变量既可以在函数内访问到,也可以在函数外访问到。
Python 局部作用域
在 Python 中,当我们在函数内部定义变量时,这些变量将具有局部作用域,其有效范围只限于在函数之中,函数执行完了就没了。说白了,局部变量只能在函数中使用,函数外部是不能使用函数内部定义的变量的。
示例 2:函数内可以使用全局变量
a = 'Python'
# 定义函数
def get_mes():
b = a + ' 教程'
print(b)
# 调用函数
get_mes()运行结果如下。
Python 教程分析:
变量 a 由于是在主程序中定义的,因此它是全局变量,也就是在程序的任何地方(包括函数内)都可以使用。变量 b 由于是在函数内部定义的,因此它是局部变量,也就是只限在 get_mes() 函数内部使用。
示例 3:函数外不可以使用函数内的变量
a = 'Python'
# 定义函数
def get_mes():
b = a + ' 教程'
print(b)
# 尝试使用函数内的变量 b
result = '绿叶网:' + b
print(result)运行结果如下。
(报错)NameError: name 'b' is not defined分析:
为什么这里会报错呢?这是因为变量 b 是局部变量,只能在函数之内使用,不能在函数之外使用。如果我们想要在函数外部使用函数内部的变量,可以使用 return 语句返回该变量的值,请看下面示例。
示例 4:在函数外部使用函数内部的变量
a = 'Python'
# 定义函数
def get_mes():
b = a + ' 教程'
return b
# 在表达式内调用函数
result = '绿叶网:' + get_mes()
print(result)运行结果如下。
绿叶网:Python 教程