首页 > 其他 > 详细

函数对象

时间:2020-08-08 18:15:35      阅读:63      评论:0      收藏:0      [点我收藏+]

一、函数是第一类对象,即函数可以当作数据传递

#1 可以被引用
#2 可以当作参数传递
#3 返回值可以是函数
#3 可以当作容器类型的元素

二、利用该特性,优雅的取代多分支的if

def foo():
    print(‘foo‘)

def bar():
    print(‘bar‘)

dic={
    ‘foo‘:foo,
    ‘bar‘:bar,
}
while True:
    choice=input(‘>>: ‘).strip()
    if choice in dic:
        dic[choice]()

 

三、函数是第一个等公民:可以把函数当变量去用

def func():  # func=函数的内存地址
    print(‘from func‘)

x=10 # x=10的内地址
#1、可以被赋值
f=func
f()

#2、可以当作参数传给另外一个函数
def foo(f):
    print(f)
    f()

foo(func)

# 3、可以当作函数的返回值
def foo(f):
    return f
res=foo(func)
print(res)

# 4、可以当作容器类型的元素
l=[func,]
print(l)
l[0]()

 

四、

技术分享图片
def login():
    print(登录...)

def register():
    print(注册...)

def tranfer():
    print(转账...)

def withdraw():
    print("提现功能。。。")

func_dic={
    "1":["登录",login],
    "2":["注册",register],
    "3":["转账",tranfer],
    "4":["提现",withdraw]
}

while True:
    for k,v in func_dic.items():
        print(k,v[0])
    choice = input("请输入您的命令编号,输入0退出:").strip()
    if choice == "0":
        break
    if choice in func_dic:
        func_dic[choice][1]()
    else:
        print("输入的指令错误")
练习标注

 

函数对象

原文:https://www.cnblogs.com/datatool/p/13457917.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!