如何从未定义的地方调用对象实例方法

时间:2013-10-06 00:55:40

标签: python

我有一个顶级脚本,可以创建对象的实例并执行实例的方法。我很困惑,因为我可以在alarm_handler文件中执行fetcher的方法。具体来说,请在下方排除“status = fetcher.get_status”。希望这对我要问的内容有意义。如果我能澄清任何事情,请告诉我。

***file: master***
import fetcher
import alarm_handler
fetcher = fetcher.Fetcher()
alarms = alarm_handler.AlarmHandler()
site_status = alarms.compare_status()

***file: fetcher***
class Fetcher(object):

    def fetch(self)
        fetch a bunch of internet data

    def get_status(self)
        fetch some other internet data

***file: alarm_handler***
from master import fetcher
class AlarmHandler(object):

    def compare_status (self)
        status = fetcher.get_status()
        status_comparison = status comparison stuff
        return status_comparison

1 个答案:

答案 0 :(得分:2)

您正在创建循环导入。不。

也许您想将fetcher实例传递给AlarmHandler.compare_status()方法?

import fetcher
import alarm_handler

fetcher = Fetcher()
alarms = AlarmHandler()
site_status = alarms.compare_status(fetcher)

或者在创建AlarmHandler()实例时传递它:

import fetcher
import alarm_handler

fetcher = Fetcher()
alarms = AlarmHandler(fetcher)
site_status = alarms.compare_status()