我正在嘗試使用日誌記錄的memory handler將日誌消息緩衝到我的實際日誌處理程序。您可以通過一些參數實例它使用的內存處理,像這樣:在python中實例化類時返回另一個類
import logging
buffered_handler = logging.handlers.MemoryHandler(capacity=5,target=myActualHandler)
不過,我不希望我的應用程序必須從直接登錄實例的處理程序,或通過任何參數;我想這個代碼看起來像這樣:
import myhandlers
buffered_handler = myhandlers.BufferedRemoteHandler()
問題是:我該如何做到這一點?我想嘗試實例化我的BufferedRemoteHandler
到實際上返回日誌的MemoryHandler與一些特定的參數。我想只是讓BufferedRemoteHandler
一個函數返回我想要的處理程序;那是正確的方法嗎?有沒有辦法創建一個類,當你實例化它時,實際上會返回一個完全不同的類?
感謝您回答這個問題!這看起來非常優雅;除簡單之外,還有其他什麼原因可以推薦功能路線嗎? – 2012-03-26 20:25:46
@Igor,最不驚訝的原則呢? – 2012-03-26 21:26:31
我同意。返回某個其他類的實例對於類實例化操作來說是一種令人驚訝的結果。 – kindall 2012-03-26 21:52:09