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

函數名的本質和閉包

集合 login 使用 outer 應用 內存地址 keys 得到 容器類

函數名的本質:

  函數可以作為容器中一項

  函數名可以賦值

  可以作為參數

  可以做返回值

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

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

閉包的應用

緩存

裝飾器

  

函數名的本質和閉包