python变量作用域

函数引用变量:本地域,上层函数域,全局域,内置域
变量的声明必须在引用之前,本地覆盖全局,各类语言都类似
nonlocal:声明为外层变量
global:声明为全局变量

实例如下:

X=10#全局变量
Y=20#全局变量
C=30#全局变量
def test():
    Y=40#test本地变量
    print("test本地变量Y初始化为:",Y)
    def test1():
        Y=22#定义必须在引用之前
        print("test1-X:",X," ","test1-Y:",Y)#搜索全局变量10,搜索test1本地变量22
        #Y=22#定义必须在引用之前
    def test2():
         print("test2-X:",X," ","test2-Y:", Y)#搜索全局变量10,#搜索test本地变量200
    def test3():
        nonlocal Y#声明为外层变量
        Y+=30#修改外层变量
    def test4():
        global C #声明为全局变量
        C=60#修改了全局变量C的值
    print("test函数调用内部函数结果如下:")
    test1(),test2(),test3(),test4()#函数内部调用函数
    print("test本地变量Y被内部函数test3修改后为:",Y)
    print("test函数函数返回函数结果如下:")
    return test1(),test2(),test3(),test4()

print("全局变量初始化为:X=%d,Y=%d,C=%d"%(X,Y,C))
test()
print("全局变量执行后为:X=%d,Y=%d,C=%d"%(X,Y,C))
D:\py\venv\Scripts\python.exe D:/py/func.py
全局变量初始化为:X=10,Y=20,C=30
test本地变量Y初始化为: 40
test函数调用内部函数结果如下:
test1-X: 10   test1-Y: 22
test2-X: 10   test2-Y: 40
test本地变量Y被内部函数test3修改后为: 70
test函数函数返回函数结果如下:
test1-X: 10   test1-Y: 22
test2-X: 10   test2-Y: 70
全局变量执行后为:X=10,Y=20,C=60

Process finished with exit code 0

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值