Python 变量的作用域

全局变量和局部变量

  • 定义在函数内部的变量拥有一个局部作用域,定义在函数外的拥有全局作用域
  • 局部变量只能在其被声明的函数内部访问,而全局变量可以在整个程序范围内访问。调用函数时,所有在函数内声明的变量名称都将被加入到作用域中。
# 全局变量
total = 24

def f(x, y):
    # 局部变量
    total = x + y
    print("函数内:", total)
    return total

f(1, 1)
print("函数外:", total)

输出:

函数内: 2
函数外: 24

globalnonlocal 关键字

当内部作用域想修改外部作用域的变量时,可以使用 global 关键字。示例如下:

total = 24

def f(x, y):
    # 使用global声明一个全局变量
    global total
    total = x + y
    print("函数内:", total)
    return total

f(1, 1)
print("函数外:", total)

输出:

函数内: 2
函数外: 2

如果要修改嵌套作用域(外层非全局作用域)中的变量则需要 nonlocal 关键字。示例如下:

def outer():
    num = 24

    def inner():
        # nonlocal用于外部嵌套变量的调用
        nonlocal num
        num = 8
        print(num)

    inner()
    print(num)

outer()

输出:

8
8
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值