我正在阅读 Dusty Phillips 的一本 Python OOPs 书。我无法理解书中的特定程序,第 7 章 - Python 面向对象的快捷方式。代码的扩展版本可在此处获得
尽管该程序属于Functions are objects too主题,但所提供的程序还使用了一个奇怪的代码,我觉得这更像是相反的意思(将对象用作函数)。
我已经指出了代码中我有疑问的那一行。callback
该变量如何TimedEvent
像函数Timer
类一样使用?这部分发生了什么。
import datetime
import time
class TimedEvent:
def __init__(self, endtime, callback):
self.endtime = endtime
self.callback = callback
def ready(self):
return self.endtime <= datetime.datetime.now()
class Timer:
def __init__(self):
self.events = []
def call_after(self, delay, callback):
end_time = datetime.datetime.now() + \
datetime.timedelta(seconds=delay)
self.events.append(TimedEvent(end_time, callback))
def run(self):
while True:
ready_events = (e for e in self.events if e.ready())
for event in ready_events:
event.callback(self) ----------------> Doubt
self.events.remove(event)
time.sleep(0.5)
qq_花开花谢_0
白板的微信
相关分类