函数名的本质和闭包

函数名的本质:

  函数可以作为容器中一项

  函数名可以赋值

  可以作为参数

  可以做返回值

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

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

闭包的应用

    缓存

    装饰器

  

猜你喜欢

转载自www.cnblogs.com/songzangzhe/p/9917550.html