python--非局部变量nonlocal

本文详细解释了Python中非局部变量(nonlocal)的概念及其用法。通过具体的代码示例展示了如何使用nonlocal声明来修改外部作用域内的变量,以及与局部变量和全局变量的区别。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

非局部语句可以让所列的标识符(identifier)指向最近的嵌套作用域(enclosing scope)中已经绑定过的变量,全局变量除外。具体参考这篇文章:http://codingpy.com/article/what-is-nonlocal-statement-in-python/


def a():
    i = 0
    def b():
        i=i+1
    b()
a()

b()中并不会赋值,a()和b()中i重名,报错local variable 'i' referenced before assignment

def a():
    i = 0
    def b():
        nonlocal i
        i=i+1
    b()
a()

b()虽然可以读到a()中的变量i,但不会对其可写,nonlocal可以指定b()中i的赋值对象指定为a()中i



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值