LINUX.ORG.RU

История изменений

Исправление cvs-255, (текущая версия) :

То, что я делаю, это по сути аналог

def create():
        return dict()

def set_cb(d, cb):
        d["callback"] = cb

def call_cb(d):
        d["callback"]()

class Test(object):
        message = "Hello, world"
        def __init__(self):
                self.d = create()
                set_cb(self.d, self.foo)

        def foo(self):
                print("Self = ", self)
                print(self.message)

        def call(self):
                call_cb(self.d)

test = Test()
test.call()

но только create, set_cb и call_cb сидят в C коде

Исправление cvs-255, :

То, что я делаю, это по сути аналог

callback = None

def set_cb(cb):
        global callback
        callback = cb

def call_cb():
        callback()

class Test(object):
        message = "Hello, world"
        def __init__(self):
                set_cb(self.foo)

        def foo(self):
                print("Self = ", self)
                print(self.message)

        def call(self):
                call_cb()

test = Test()
test.call()

но только set_cb и call_cb сидят в C коде

Исходная версия cvs-255, :

То, что я делаю, это по сути аналог

callback = None

def set_cb(cb):
        global callback
        callback = cb

def call_cb():
        callback()

class Test(object):
        message = "Hello, world"
        def __init__(self):
                set_cb(self.foo)

        def foo(self):
                print("Self = ", self)
                print(self.message)

test = Test()

call_cb()

но только set_cb и call_cb сидят в C коде