2012-12-04 30 views
1

提供類繼承與contextlib.contextmanager

class SomeClass: 
    @contextlib.contextmanager 
    def on_connection(self, target_terminal, source_terminal): 
     ... 
     yield 
     ... 

如何從它繼承?

+0

道歉自答案。我搜索了StackOverflow來解答這個問題。當我找不到一個,我不得不考慮這個問題,然後決定爲下一個人發佈一個答案。 –

回答

1

這是可能的contextlib.contextmanager模式與with塊超上下文管理,使結合:

class SomeDerivedClass(SomeClass): 
    @contextlib.contextmanager 
    def on_connection(self, target_terminal, source_terminal): 
     with super().on_connection(target_terminal, source_terminal): 
      ... 
      yield 
      ...