python 局部变量与全局变量

本文详细介绍了Python中变量的作用域,包括局部变量、非局部变量和全局变量的区别及使用方法。探讨了如何在函数内外正确地使用这些变量,并通过实例展示了嵌套函数中变量的处理方式。

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

在函数内定义的变量 不能作用到 函数外部

def combine():

num=1
return num
print (num)


单是 函数外部的全局变量是可以作用到函数内部的

def combine():
return num*2
num=1
print (combine())


如果函数 内定义的变量和函数外部定义的变量重名   可以使用globals()['变量名称']  获得函数外部的变量值

def combine(par):
print (par+globals()['par'])

par='aa'
combine('share')


函数内部如果定义变量想 供函数外部使用可以在声明变量时 将其声明为全局变量

def combine():
global num
num=3
combine()
print (num)

在调用 变量前 先实例化函数



在函数内部定义全局变量且函数外部 有重名 变量时 ,量变量引用同一地址(可通过 id('变量')查看)

gcount = 0

def global_test():
    print (gcount)
    
def global_counter():
    global gcount
    gcount +=1
    return gcount
    
def global_counter_test():
    print(global_counter())
    print(global_counter())
    print(global_counter())


global_counter_test()

输出 123  

这里实现了类似php static 的功能



如果使用了嵌套函数想实现以上global的功能可以使用一下代码

def make_counter():
    count = 0
    def multiplyByFactor():
        nonlocal count
        count += 1
        return count
    return multiplyByFactor


def make_counter_test():
mc = make_counter()
print(mc())
print(mc())
print(mc())
make_counter_test()


总结 由此可见python 变量的作用域 有 局部(local) 非局部(nonlocal)  全局 (global) 



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值