2017-04-19 2 views
0

私はイメージを生成し、それをパイロット図にプロットしてからイメージを返します。この関数は長く、実際にプロットする場所を正確に見つけるのは完全に妥当ではありません。誰もが単純にプロットを抑制する方法を知っていますが、関数が正常に実行できるようにして、返されたイメージを取得できますか?これはPython 3.6で役に立ちます。Python:関数のプロットを抑制する方法はありますか?

+2

コードがあなたのコントロール内にある場合I wont do it!は、ちょうどあまり行う小さな関数にダウン機能を破ります。これは、単一の機能で多くの副作用を実行する際の問題です。実行するすべての効果に対処する必要があります。これは、1つの関数プロットを有し、別のプロットが画像を生成することによって回避することができる。その後、発信者は自分が望むものを決めることができます。 – Carcigenicate

+0

代わりにファイルに保存すれば十分でしょうか? – PrestonM

+0

pyplotのFigureをプロットする通常の方法は、 'pyplot.imshow(...)'を使うことです。あなたは関数内でその呼び出しを探してみることができ、そこにあればそれを削除することができます。 – JohanL

答えて

1

関数の名前空間をモンキーパッチし、プロット関数をノーオペレーション関数に置き換えることができます。 考える

'''This is the to-be patched code, living in some module''' 

def plot(): 
    print('Here is a plot: ##====>') 

def do_the_plot(): 
    plot() 

そして

'''Our new code, living some place else''' 
def newplot(): 
    print('I wont do it!') 

# The globals() will be replaced by the actual module names 
globals()['plot'] = globals()['newplot'] 
do_the_plot() 

プリント

+0

に私の返答を見るOPは、ソースコードの管理下にあるようだ。その場合、サルパッチは私にとっては残酷なもののようです。 – JohanL

+0

ありがとう、これは間違いなく私が必要とする抽象度レベルのソリューションです。プロット関数のコードを調べる必要はありませんが、方法はありますか?もしそうでなければ、私はおそらくこのメソッドを使うでしょう。 – K4n3

+0

あなたはmonkey-patchにしたいコードを知る必要があります...とにかく、JohanLが指摘しているように、コードを制御できれば、代わりにディスクにパッチを適用することができます。 – user2722968

関連する問題