代码————————————————
"""
1、在函数内部针对参数使用赋值语句,不会影响调用函数的实参变量
2、如果传递电参数是可变类型,在函数内部,使用方法使用方法修改数据内容,同样会修改外部数据
3、在python中,列表变量调用+=本质上就是执行列表变量的extend方法(将两个列表拼接),不会修改变量的引用
"""
print("1、在函数内部针对参数使用赋值语句,不会影响调用函数的实参变量")
a = 100
b = [1, 2, 3]
def he(num, hw_list):
num = 50;
hw_list = [9, 6, 3]
print(num)
print(hw_list)
print("函数执行完成")
he(a, b)
print(a) # 成员变量未更改
print(b)
print("2、如果传递电参数是可变类型,在函数内部,使用方法使用方法修改数据内容,同样会修改外部数据")
hw_a = [1, 2, 3]
def qq(hw_list):
hw_list.append(10)
print(hw_list)
print("函数执行完成")
qq(hw_a)
print(hw_a) # 全局变量也修改了
print("3、在python中,列表变量调用+=本质上就是执行列表变量的extend方法(将两个列表拼接),不会修改变量的引用")
jie_list = [5, 1, 4]
wei_list = [8, 2, 3]
pj_list = [1, 2, 3]
num = 10
def vv(a, b_list, c_list, d_list):
a += a
b_list += b_list #由于相当于调用了extend()方法,所以该列表发生了改变
c_list = c_list + c_list
d_list.extend(d_list)
print("num=%d" % a)
print("jie_list=" , b_list)
print("wei_list=" , c_list)
print("pj_list=" , d_list)
print("函数执行完成")
vv(num, jie_list, wei_list, pj_list)
print("num=%d" % num)
print("jie_list=", jie_list)
print("pj_list=" , pj_list)
print("wei_list=" , wei_list) #注意: 只有+=才能拼接,则x=x+x不行,所以该列表并没有改变
运行结果——————————————