Python函数学习一

有C#的基础学习python还是挺快的,一天看到了函数,在此仅记录学习,好心的你如果看到了请不吝赐教指正我的错误。

lambda函数的使用

可以是f=lambda name: lambda name: print(name,“在画画”))
调用f(name)
也可以是如下:

def ReadBook(name):
    return print("{}在读书".format(name))

def DoHomeWork(name):
    return print("{}在做作业".format(name))

while True:

    name = input("请输入名字:\n")

    if name == "stop":
        break;

    dosomething = input("请选择做的事情:R => 读书 , D => 做作业, W => 在画画\n" )

    if dosomething == "R":
        ReadBook(name)

    elif dosomething == "D":
        DoHomeWork(name)

    elif dosomething == "W":
        (lambda name: print(name,"在画画"))(name)
    else: print("不做事")

上面这总要是事件一多就显得麻烦,我们可以用类似C#中委托的东西来做,如下:

def ReadBook(name):
    return print("{}在读书".format(name))

def DoHomeWork(name):
    return print("{}在做作业".format(name))

operation = {
    'R':ReadBook,  # 这里要是加了()就会直接运行,不加()表示引用
    'D':DoHomeWork,
    'W':(lambda name: print(name,"在画画")),
}

while True:

    name = input("请输入名字:\n")

    if name == "stop":
        break;

    dosomething = input("请选择做的事情:R => 读书 , D => 做作业, W => 在画画\n" )

    operation.get(dosomething, lambda name:print(name,'不做事'))(name)

看到没有,简直不要太好用啊,这字典+lambda,完美。。
还可以这样:

def ReadBook(name):
    return print("{}在读书".format(name))

def DoHomeWork(name):
    return print("{}在做作业".format(name))

def DoSth(action, name):
        action(name)

DoSth(ReadBook, name="hehe")
DoSth(DoHomeWork, 'sss')
DoSth(lambda name:print(name,'在画画'), '大爷')

用DoSth统一调用还不错啊,把函数当参数一样来传,引用。python本身自带这个功能,很强。。。ok收工

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值