文件引擎.py:
class Engine(object):
def __init__(self, variable):
self.variable = variable
class Event(object):
def process(self):
variable = '123' # this should be the value of engine.variable
Python
>>> from engine import Engine, Event
>>> engine = Engine('123')
>>> e = Event()
>>> e.process()
实现这一目标的最佳方法是什么?由于 Event 类的限制(它实际上是我正在将新功能拼接到的第三方库的子类),我不能做类似e = Event(engine)
.
深入解释:
为什么我不使用e = Event(engine)
?
因为 Event 实际上是第三方库的子类。此外,process()
是一种内部方法。所以这个类实际上看起来像这样:
class Event(third_party_library_Event):
def __init__(*args, **kwargs):
super(Event, self).__init__(*args, **kwargs)
def _process(*args, **kwargs):
variable = engine.variable
# more of my functionality here
super(Event, self)._process(*args, **kwargs)
我的新模块还必须与已经使用 Event 类的现有代码无缝运行。所以我不能将引擎对象添加到每个 _process() 调用或init方法。