Python 全局变量与局部变量--笔记

        在python 中全局变量与局部变量的区别是作用域不同。一般局部变量声明在方法、类中,作用范围仅限于方法体、类中。而全局变量没有这个限制。

1.全局变量作用于整个py文件;

2.局部变量作用域方法体、类声明范围内;

如下代码:

'''
    全局变量 与本地变量的测试
'''
# 定义全局变量 num
def add():
    num2=12
    print("局部变量 num2:",num2)
    #global num #声明这里使用的是全局变量,有指定引用的意思
    num=2
    
num=1
print("全局变量,原始num:",num)
add();
print("运算后num:",num)

A.方法中使用全局变量,与顺序无关;

B.方法中改变全局变量的值,对于传值参数可使用关键字“global”;

C.方法体外使用局部变量,会产生异常;

关于变量作用于的关键字nonlocal

从字面意思是指【非局部变量】,【python 3.x】使用方法如下代码:

def fn():
    num = 1;
    def fn1():
        nonlocal num
        num+=1
        return num
    return fn1();

print("nonlocal 使用测试:",fn())

结果:

上面代码中 num不是全局变量,在不使用nonlocal声明的前提下,运行时产生异常。使用nonlocal声明的意义在于,指定num非方法fn1中声明的。编译器查找的范围扩展到fn。

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值