python--总结之全局局部变量

'''
局部变量(仅限在函数内部使用)--某个班级的风扇和空调
全局变量()--公共的,饮水机,每个班级都可以去打水

局部变量值可以在函数内部修改
当全局变量的值是不可变类型的,比如字符串,则不允许在函数内部修改,如果要修改则需要用global修饰 且声明在函数体的第一句
        如果是可变类型的,则可以之间在函数内修改全局变量

总结:# 不可变的全局变量如果在内部函数需要修改必须用global修饰
    # 不可变的外部函数的局部变量如果在内部函数需要修改必须用nonlocal修饰
    # 可变变量可直接在内部函数修改
    # 内部函数可以直接访问外部函数的局部变量以及该项目的全局变量

当在函数内,局部变量与全局变量同名,则使用局部变量的(就近原则)

'''
name='yueyue'#全局变量

def func2():
    name='小月月'#局部变量与全局变量同名
    name+='弹吉他的小美女'
    print(name)#小月月弹吉他的小美女

def func3():
    print(name)
    # name+='会弹吉他'  报错,全局的改变不了,上面那个改的了是因为他改的其实是局部变量的name

def func4():
    global name  #如果要修改全局的name则需要加上global
    print(name)#yueyue
    name+='会弹吉他'
    print(name)#yueyue会弹吉他

func2()
func4()


print('---------------')
#内部函数
'''
特点:
1.可以访问外部函数的变量
2.内部函数可以修改外部函数的《可变类型》的变量,比如list1
'''
f=100#不可变全局变量 修改用global
def func():
    #声明变量
    a=100 #不可变局部变量 修改用nonlocal
    list1=[3,6,9,4] #可变局部变量

    #声明内部函数
    def inner_func():

        #a不用nonlocal修饰然后对其进行修改会报错
        nonlocal a
        #对list1里面的元素进行加n操作
        for index,i in enumerate(list1):
            list1[index]=i+a  #可以直接修改外部函数的可变类型变量
        list1.sort()
        # 不可变的全局变量如果在内部函数需要修改必须用global修饰
        # 不可变的外部函数的局部变量如果在内部函数需要修改必须用nonlocal修饰
        # 可变变量可直接在内部函数修改
        a+=101

    inner_func() #调用内部函数

    print(list1)
    print(a)

#调用外部函数
func()

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值