私は、PythonプログラミングとIntelliJを使った非常に大きなPythonモジュールの開発には全く新しいです。私は、複数の場所から呼び出される静的メソッドがあるかどうかと、このメソッドのシグネチャを別のものを受け入れるように変更するのかどうか疑問に思っていました。議論の私はいくつかの場所で実際のメソッド呼び出しを修正するかもしれないが、他のいくつかの呼び出しを変更することがあります。 Javaでは、私はコンパイル時のエラーを受け取りますが、Pythonは解釈されるので、実行時に(おそらく本番環境では)いつかだけ解明されます。今まで私は 'python -m compileall'コマンドを使用していましたが、JavaのようにIntelliJの構文エラーを取得する方法はありますか?Pythonでランタイムエラーが発生しないようにする方法
-2
A
答えて
1
pylint
などのユニットテストとスタティックコード解析ツールが役立ちます。 pylint
は、関数に渡される引数の数が正しくないことを検出できます。
Python 3を使用している場合は、関数の注釈が便利であり、mypy
は、注釈付きの関数呼び出しをタイプすることができます(明らかに私は使っていません)。
一般に、依存コードを破棄せずに既存の関数シグネチャを変更する戦略は、キーワード引数を使用することです。あなたは、関数に新しい引数を追加するキーワード引数として追加したい場合たとえば、:今すぐにと新しい引数なしで呼び出す
#def f(a):
# """Original function"""
# print(a)
def f(a, b=None):
"""New and improved function"""
print(a)
if b is not None:
print(b)
は動作します:もちろん、これの
>>> f('blah')
blah
>>> f('blah', 'cough')
blah
cough
常に機能するとは限りません。引数が削除された場合、または関数のセマンティクスが既存のコードを壊すように変更された場合。
関連する問題
- 1. Eclipseでランタイムエラーが発生するが、cmdではない
- 2. 大きな数値を扱う際にランタイムエラーが発生する
- 3. なぜ私のコードにランタイムエラーが発生していますか?
- 4. HTTP.Serverシャットダウンでランタイムエラーが発生する
- 5. C#コードでランタイムエラーが発生する
- 6. iOS - GCMでランタイムエラーが発生する
- 7. マージソートアルゴリズムでランタイムエラーが発生する
- 8. いつSIGABRTランタイムエラーが発生し、そのような場合にデバッグするのですか?
- 9. PythonでUVaを送信するときに常にランタイムエラーが発生する
- 10. pipを使用しようとするとランタイムエラーが発生する
- 11. 基本分数を取得しようとするとランタイムエラーが発生する
- 12. Python:HELPランタイムエラーが発生する(NZEC)
- 13. Erlangでランタイムエラーが発生した原因を特定するにはどうすればよいですか?
- 14. ランタイムエラーが発生するのはなぜですか?
- 15. ワンクリックでダブルクリックが発生しないようにする
- 16. pythonのベースマップに点を描画するとランタイムエラーが発生する
- 17. カスタムエラーを有効にするとランタイムエラーが発生します
- 18. エミュレータでAndroid apppを実行しているときにランタイムエラーが発生する
- 19. C++でベクタを実装しているときにランタイムエラーが発生する
- 20. edit.phpページでエラーが発生しないようにしたい
- 21. C++の100000回帰呼び出しでランタイムエラーが発生する
- 22. ピンチ後にドラッグイベントが発生しないようにする
- 23. MouseDown後にMouseUp/MouseClickが発生しないようにする
- 24. TListViewがOnSelectItemイベントを発生させないようにする方法(C++ Embarcadero)
- 25. オンラインジャッジで実行中にランタイムエラーが発生しました
- 26. フェッチ時に 'add'イベントが発生しないようです。
- 27. ベクトルのベクトルにプッシュするときにランタイムエラーが発生する
- 28. NotSerializableExceptionが発生しないようにする
- 29. Hibernate StaleObjectStateExceptionが発生しないようにする
- 30. 入力値が100000より大きい場合、ランタイムエラーが発生する
ユニットテストは理由のために作成されました –
@ Jarrod Roberson同意して、良いプログラマーの編集者でした。あなたの関数の名前が正しく指定されていれば、すばやくすべての呼び出しを見つけて調べることができるはずです。 –