一,函式物件
函式是第一類物件,即函式可以當做資料傳遞
1.可以被引用
2.可以當做引數傳遞
len(x)deffoo(m):
#print(m)
m()foo(func)
3.返回值可以是函式
def foo(x): #x=func
return x #
return func
res=foo(func)
(res)
res()
4.可以當作容器型別的元素
l=[x,]l=[func,]
#print(l)
l[0]()
利用該特性,優雅的取代多分支的if語句:
deflogin():
print("登陸"
)def
register():
print("註冊"
)def
shopping():
print("購物"
)res = input("
請選擇功能名稱:")
#if res == "login":
#login()
#elif res == "register":
#register()
#elif res == "shopping":
#shopping()
#else:
#print("輸入有誤")
funcdic =
if res in
funcdic:
funcdic[res]()
else
:
print("
輸入有誤!
")
函式物件,巢狀,命名空間與作用域
1 函式名可以被傳遞 2 函式名可以被當做引數傳遞給其餘函式 3 函式名可以當做函式的返回值 4 函式名可以當做容器型別的引數 例如 函式名可以被傳遞給變數 deffunc print test f func 變數名f指向函式的記憶體位址 通過該記憶體位址該變數可以找到函式對應的 塊 f 變數名f呼...
命名空間與作用域,函式物件,函式巢狀,閉包函式
命名空間的分類 全域性命名空間 在py檔案中頂格編寫的 執行之後都會存入全域性命名空間 區域性命名空間 函式體 執行之後產生的都是區域性命名空間 內建命名空間 input built in 內建 全域性命名空間 x 10 變數名x y 20 變數名y f 1 0 z 30 with open a.t...
函式物件 函式的巢狀 命名空間及作用域
函式物件 定義 函式是第一類物件 函式名指向的值可以被當做引數傳遞 1.函式名可以被傳遞 name jason x name print x print id x def func print from func print func print id func f func func print ...