Pythonデコレータで関数を「非アクティブ化」することは可能ですか? ここに例があります:
cond = False
class C:
if cond:
def x(self): print "hi"
def y(self): print "ho"
このコードを次のようにデコレータで書き直すことはできますか?:
class C:
@cond
def x(self): print "hi"
def y(self): print "ho"
背景: 私たちのライブラリにはいくつかの依存関係 (matplotlib など) がオプションであり、これらはいくつかの関数 (デバッグまたはフロント) でのみ必要です。これは、一部のシステムではmatplotlibがインストールされていない他のシステムではインストールされていないことを意味しますが、両方で(コア)コードを実行する必要があります。そのため、matplotlib がインストールされていない場合は、いくつかの機能を無効にしたいと思います。そんなにエレガントな方法はありますか?