一个简单的python信号槽实现

论坛 期权论坛 脚本     
匿名技术用户   2021-1-6 19:28   410   0

【如有错误,欢迎指正,拒绝嘴臭】

# -*- coding: utf-8 -*-

class CSignal():
    def __init__(self):
        self.slot = []
    def emit(self, *arg, **kw):
        for pFunc in self.slot:
            pFunc(*arg, **kw)
    def connect(self, cbfunc):
        self.slot.append(cbfunc)

class FuncObj():
    def __init__(self):
        pass
    def test(self, *arg, **kw):
        print 'i am FuncObj!'

def test(*arg, **kw):
    print "i am test", arg, kw

if __name__ == "__main__":
    testSignal = CSignal()
    testSignal.connect(test)

    testOb = FuncObj()
    testSignal.connect(testOb.test)

    testSignal.emit()

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:7942463
帖子:1588486
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP