1. 程式人生 > >函式名的本質和閉包

函式名的本質和閉包

函式名的本質:

  函式可以作為容器中一項

  函式名可以賦值

  可以作為引數

  可以做返回值

返回值的本質:是返回的值,而不是某個變數

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就是一個閉包函式

閉包的應用

    快取

    裝飾器