函数的扩展
Posted changtao
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了函数的扩展相关的知识,希望对你有一定的参考价值。
函数名的用途:
函数名可以作为变量赋值(得到的是函数的内存地址)
函数的调用其实就是函数的内存地址,通过加括号调用
函数名可以当作函数的参数传递
函数名可以当作返回值
函数的闭包:优点:多次运行一样的程序可以节省程序运行的时间
应用:缓存 装饰器
闭包的例子:
def func(*args):
sum_num = 0
for num in args:
sum_num += num
def inner():
return sum_num
return inner
###print(inner.__closure__)可以用来查询inner 是不是闭包
inner = func(1,2,3,4)
inner()
默认参数的陷阱:
def func(l = 1):
l += 1
print(l)
func() #2
func() #2
func() #2 不管调用几次输出的都是2
lst = []
def func1(a,l=lst):
l.append(a)
print(l)
func1(1)#[1]
func1(2,[]) # [2]
func1(2)#[1, 2]#列表是一个固定的内存地址,里面的元素都有自己的内存地址,所以在添加时并没有修改lst的内存地址
以上是关于函数的扩展的主要内容,如果未能解决你的问题,请参考以下文章