Python 变量作用域

在 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 教程

上一篇: Python 函数调用

下一篇: Python 函数参数

给站长反馈

绿叶网正在不断完善中,小伙伴们如果发现任何问题,还望多多给站长反馈,谢谢!

邮箱:lvyenet@vip.qq.com

「绿叶网」服务号
绿叶网服务号放大
关注服务号,微信也能看教程。
绿叶网服务号