Python 函数内部如何调用并改变全局列表变量

在python中,对于全局数字变量、字符串变量、列表变量,函数内部只能调用,却无法改变其值;但是,对于字典变量,函数内部是可以改变全局字典变量的值的!

函数内部对全局变量的修改情况

验证方案

# 全局变量
x = 50
str = 'str'
dt = {
    
    '1': 'one'}
li = []

# 自定义函数
def func(x, str, dt, li):
    print('局部变量x={}, str={}, dt={}, li={}'.format(x, str, dt, li))
    x = 2
    str = 'string'
    dt['1'] = '1'
    li = [1]
    print('局部变量x={}, str={}, dt={}, li={}'.format(x, str, dt, li))

# 调用函数,验证全局变量的变化
func(x, str, dt, li)
print('全局常数变量x=', x)
print('全局字符串变量str=', str)
print('全局字典变量dt=', dt)
print('全局列表变量li=', li)

结果证明

在这里插入图片描述
通过结果分析,可以得出结论:除了字典变量得到修改,其他的都没有改变!


在实际开发的过程中,可能会遇到在函数内部改变全局列表变量的值的需求,怎么去实现呢?

如何在函数内部修改全局列表变量

其实很简单,我们只需要借用字典结构就可以实现这个功能!

举个简单的栗子

# 全局字典变量,value为列表
dict_list = {
    
    1: []}

# 自定义函数
def func(li):
    dict_list[1] = li

# 调用函数,验证结果
func([1, 2])
print(dict_list)
func([3, 4])
print(dict_list)

结果证明

在这里插入图片描述
例子很简单,却很能说明问题,完全实现了需求!

猜你喜欢

转载自blog.csdn.net/WU2629409421perfect/article/details/115276954