Python函数进阶250215
函数返回值进阶
- 函数返回的内容也是地址
def func01():
data = [1, 2, 3]# 执行到此步后,[1, 2, 3]这块内存会有一个引用计数器,且值为2,因为内部的data与外部的v1都指向这块空间
return data
v1 = func01()# v1 point the address of data, if this line finished, the data is been deleted.引用计数器变为1
print(v1)# [1, 2, 3]
参数的默认值进阶
- 如果函数参数的默认值是可变类型,就需要注意指向问题
def func(a1, a2 = [1, 2]):
a2.append(666)
print(a1, a2)
return
func(100)# 100 [1, 2, 666]
func(200)# 200 [1, ]