函數對象

函數對象

函數是第一類對象

一、函數名是能夠被引用的

def index():
    print("hello world")
a=index
a()

二、函數名能夠當作參數傳遞

def index(a,bar):
    print(a)
    bar()
def fun():
    print("hello world")
index(1,fun)
# >>>
# 1
# hello world

三、函數名能夠當作返回值使用

傳參的時候沒有特殊需求,必定不要加括號,加括號就會到那一步立馬執行python

def index():
    print("hello world")
def fun(a):
    return a
a = fun(index)
a()
# >>> hello world

四、函數名能夠被當作容器類型的元素

def index():
    print("hello world")
l1 = [1,2,index,index()]  # 當有括號的時候執行到l1時就會執行一次函數
f=l1[2]
print(f)  # 打印函數名獲得函數內存地址
f()
# >>>
# hello world
# <function index at 0x000002914A70C3A8>
# hello world
# 簡單購物車流程
def register():
    print("register")
def login():
    print("login")
def shooping():
    print("shooping")
def pay():
    print("pay")

l1 = {'1':register,'2':login,'3':shooping,'4':pay}
def gw():
    while True:
        print(
            """
            一、註冊
            二、登陸
            三、購物
            四、結帳
            五、退出
            """
        )
        f = input("請輸入對應的編號:").strip()
        if f == "5":
            break
        if f not in l1:
            continue
        else:
            l1[f]()
gw()
相關文章
相關標籤/搜索