使用シナリオ:
# case #1 - for classes
a = MyClass() # default logger is None
a = MyClass(logger="a") # set the default logger to be "a"
a.test(logger="b") # this means that logger will be "b" only inside this method
a.test(logger=None) # this means that logger will be None but only inside this method
a.test() # here logger should defaults to the value specified when object was initialized ("a")
上記のように使用できるようにするには、どうすれば実装MyClass
できますか?
MyClass
名前付きパラメーターを受け入れることができるいくつかのメソッドが内部にあると仮定して、各メソッドlogger
の先頭に多くの重複コードを追加する必要のないソリューションをいただければ幸いです。test...()
センチネルの例について読みましたが、これはクラスでは機能せず、グローバル変数を追加してセンチネル オブジェクトを内部に保持したくありません。