函数名的本质和闭包
Posted songzangzhe
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了函数名的本质和闭包相关的知识,希望对你有一定的参考价值。
函数名的本质:
函数可以作为容器中一项
函数名可以赋值
可以作为参数
可以做返回值
返回值的本质:是返回的值,而不是某个变量
def func():
a=1
return a
b=func()
print(b)
func#函数的内存地址
函数名加括号==调用
函数地址加括号==调用
函数名可以赋值
def f():
print(123)
f()
a=b=f
f()
a()
b=()
容器类型:列表 元祖 字典 集合
函数可以作为容器类型中的一项,可以做字典的keys
def f1():
print(‘哇哈哈‘)
def f2():
print(‘qq星‘)
函数名可以作为函数的参数
def login():
print(‘欢迎登陆‘)
def index(auth):
auth()
print(‘欢迎来到首页‘)
index(login)
函数名可以作为函数的返回值
def login_failed():
print(‘登录失败‘)
def index():
print(‘欢迎来到首页‘)
def login(usr,pwd):
if usr == ‘alex‘ and pwd ==‘sb‘
return index
else:
return login_failed
res_func = login(‘alex‘,‘ssb‘)
res_func()
def f():
pass
f是函数名
f()是函数调用
f()得到的结果是返回值
闭包
内部函数使用了外部函数的变量,内部函数就是一个闭包
def outer(*args):
num=0
for i in args:
num+=i
def inner()
return num
return inner
inner=outer(1,2,3,4,5)
inner()s
inner就是一个闭包函数
闭包的应用
缓存
装饰器
以上是关于函数名的本质和闭包的主要内容,如果未能解决你的问题,请参考以下文章