2017-10-27 11 views
0

を起こったとき、Pythonのウォッチドッグは、イベントが特定のファイルが変更されたとき、私は通知を受けるために、ウォッチドッグを使用しています

evertythingがいる限り、私はそう

class MyEventHandler(PatternMatchingEventHandler): 
    def on_modified(self, event): 
     super(MyEventHandler, self).on_modified(event) 
     logging.info("File %s was just modified" % event.src_path) 
     readConfigFile() 

def readConfigFile(): 
    # set certain values here 

def main(): 
    while True: 
     # using values from configFile here 

if __name__ == '__main__': 
    main() 
    # do something else 

が、場合のように何のクラスを使用していない午前として働いていたクラスのメソッドを呼び出します私は、セットアップは、このようなものですメソッドを呼び出す方法を知っていない場所でいくつかのクラスを置く今

class MyEventHandler(PatternMatchingEventHandler): 
    def on_modified(self, event): 
     super(MyEventHandler, self).on_modified(event) 
     logging.info("File %s was just modified" % event.src_path) 
     readConfigFile() #<- i want to call this method in class Configuration 

class Configuration: 
    def readConfigFile(self): 
     # set certain values here 
    def provideValues(self): 
     # get certain values here 

class MainClass: 
    def __init__(self): 
     self.conf = Configuration() 
     event_handler = MyEventHandler(patterns=patterns) 

    def main(self): 
     while True: 
      # using values from configFile here 
      bla = self.conf.provideValues() 

if __name__ == '__main__': 
    mc = MainClass() 
    mc.main() 
    # do something else 

答えて

0

それを行う方法のログがあります。ここで一つだ:

class MyEventHandler(PatternMatchingEventHandler): 
    def hook(self, thing): 
     self.thing = thing 
    def on_modified(self, event): 
     super(MyEventHandler, self).on_modified(event) 
     logging.info("File %s was just modified" % event.src_path) 
     self.thing.readConfigFile() #<- i want to call this method in class Configuration 

class MainClass: 
    def __init__(self): 
     self.conf = Configuration() 
     event_handler = MyEventHandler(patterns=patterns) 
     event_handler.hook(self.conf) 
+0

感謝、私は実際にそれを行うための方法を見つけ、私はクラス内のメソッドを呼び出すことができるように私はいないクラスを使用してではなく、クラス自体にイベントハンドラを初期化しますが、あなたの方法でも働いていましたあなたが言ったように、多くの方法... – Markus

関連する問題