python函数 全局变量和局部变量


 1 li1=[1,2,3,4,5]
 2 str1='abc'
 3 
 4 def func1():
 5     li1=[7,8,9]
 6     str1='efg'
 7     print(str1)
 8 
 9 func1()
10 print(li1)#输出的结果为【1,2,3,4,5】,并没有因为def函数改变

 1 li1=[1,2,3,4,5]
 2 str1='abc'
 3 
 4 def func1():
 5     li1=[7,8,9]
 6     str1='efg'
 7     return li1
 8 
 9 re=func1()
10 print(re)
11 print(li1)#输出的结果为【1,2,3,4,5】,并没有因为def函数改变

输出结果为

[7,8,9]

[1,2,3,4,5]

利用return方法返回局部变量中的值,如果注释掉return li1 则输出结果None

li1=[1,2,3,4,5]
str1='abc'

def func1():
    # li1=[7,8,9]
    li1[0]=111 #对全局变量进行的修改
    str1='efg'
    return li1

re=func1()
print(re)
print(li1)#输出的结果为【1,2,3,4,5】,并没有因为def函数改变

输出结果为
[111, 2, 3, 4, 5]
[111, 2, 3, 4, 5]

可变数据类型一般是进行修改,不可变数据类型多采用重新赋值。


原文地址:https://www.cnblogs.com/smile502/p/10070580.html