开发者社区> 问答> 正文

函数式传参,传值和传值,更改传入函数:报错

p>首先有一个对象MyServer,没有定义任何方法

我可以使用 MyServer.event =my.fun来定义

怎么使用一个函数来定义一个方法?

例如我要定义MyServer.event2

使用方法来定义bind(MyServer.event2)

def bind(event):

# 这样肯定是不行的

event = my.fun2

这里面来定义这个event,能否实现

如果bind 不行, <通过对象+加方法名,使用bind(myserver,"event2")可不可以,怎么实现?< p>

展开
收起
kun坤 2020-06-06 00:25:01 421 0
1 条回答
写回答
取消 提交回答
  • 你就是面试造火箭工作螺丝钉的面试官吧

    ######

    你说的是闭包么

    ######用偏函数######

    还三年开发经验,学半年要是搞不定这个问题就放弃吧

    ######
    class MyServer:
        pass
    
    class My:
        def func(self):
            print("My.func")
        def func2(self):
            print("My.func2")
    
    def bind(obj):
        obj.event = my.func
    
    def bind2(obj, event_name):
        setattr(obj, event_name, my.func2)
    
    if __name__ == "__main__":
        my = My()
        bind2(MyServer, "event2")
        MyServer.event2()
    2020-06-06 00:25:15
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载