码迷,mamicode.com
首页 > 其他好文 > 详细

函数名的本质和闭包

时间:2018-11-06 20:22:18      阅读:160      评论:0      收藏:0      [点我收藏+]

标签:bsp   返回   failed   nbsp   inner   闭包函数   fun   print   地址   

函数名的本质:

  函数可以作为容器中一项

  函数名可以赋值

  可以作为参数

  可以做返回值

返回值的本质:是返回的值,而不是某个变量

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就是一个闭包函数

闭包的应用

    缓存

    装饰器

 

 

 

 

 

  

函数名的本质和闭包

标签:bsp   返回   failed   nbsp   inner   闭包函数   fun   print   地址   

原文地址:https://www.cnblogs.com/songzangzhe/p/9917550.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!