Допустим, у меня есть такая функция:
def display(this, that):
print this, that
и класс:
class Runner(object):
def __init__(self, callback):
self.callback = callback
self.loop = twisted.internet.task.LoopingCall(repeat)
self.loop.start(0)
@defer.inlineCallbacks
def repeat(self):
this = yield do_this()
that = yield do_that()
if this and that:
# now I want to call the callback function
yield self.callback(this, that) # makes sense?
runner = Runner(display)
reactor.run()
В основном я хочу создать класс Runner, который будетвыполнять некоторые конкретные задачи, и каждый раз, когда он получает результат, он вызывает данную функцию обратного вызова.Вместо того, чтобы создавать новую функцию, которая делает определенную вещь, я хочу создать универсальный класс, который делает только одну вещь.Например:
class TwitterReader(object):
def __init__(self, callback):
...
...
@defer.inlineCallbacks
def get_messages(self):
...
...
yield callback(messages)
class MessageFilter(object):
def __init__(self):
self.bad_messages = open('bad_messages.txt', 'w')
self.twitter = TwitterReader(self.message_received)
def message_received(messages):
for message in messages:
for bad_word in BAD_WORDS:
if bad_word in message:
self.bad_messages.write(message)
break
Я новичок в круче.Так что я не уверен, что это правильный способ сделать это.
1011 * Спасибо