1

だから私はGUI(特にKivy )を持っている私が書いたのではないこのソースコードをデバッグしようとしています、そして私が特定のものをクリックしたときにどのコード/イベントがトリガーされているかを理解しようとしています。トリガーされると思われる場所にブレークポイントを設定しようとすると、自分が間違っていることに気付くことがあり、目的のブレークポイントに遭遇することはないようです。

GUIのデバッグ、および特定のイベントによって何がトリガーされているのか、特にPythonで何がトリガーされているのかを理解するためのアドバイスはありますか?

4

2 に答える 2

0

関数の名前を出力するさまざまな関数(またはイベントハンドラー)にprintステートメントを配置し、その後に関数が受け取った引数を配置するのはどうですか?これにより、GUIを使用したときに何が起こっているのかが明確になります。print私は通常、この冗長な出力に使用する関数をラップします。例:

def verbose_print(message, *args):
    if VERBOSE:
        print message.format(*args)

これで、さまざまな関数で次のような関数を使用できます。

def do_something(param1, param2):
    verbose_print('do_something({}, {})', param1, param2)

    # Do some stuff...

VERBOSEさらに、module-global定数をすべてのprintステートメントを削除するTrueか、削除する代わりに設定することで、詳細出力のオンとオフを切り替えることができるようになりました。False

于 2012-12-02T06:35:35.753 に答える