問題タブ [readonly-attribute]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
3 に答える
58 参照

python - 文字列の内部 API への Pythonic アプローチ

質問

python内部 (および外部) APIで文字列リテラルを再利用する "pythonic" (つまり、正規、公式、PEP8 承認など) の方法はありますか?


バックグラウンド

たとえば、私はいくつかの (一貫性のない) JSON 処理コード (数千行) を扱っており、さまざまな JSON " structs" がアセンブル、解析などされています。コード レビュー中に発生する繰り返しの問題の 1 つは、異なる JSON です。struct同じ内部パラメータ名を使用しているため、混乱が生じ、最終的にはバグが発生します。例:

これらの 2 つの (例) パケットには、同じ名前のフィールドが多数ありますが、それらは非常に異なるタイプのデータを表しています。この実装には、コードの再利用を正当化する理由はありませんでした。人々は通常、コード補完エンジンを使用して JSON のメンバーを取得しますstruct。これは、タイプミスされた文字列リテラルが機能上の問題を引き起こし、早期にエラーをトリガーしないため、最終的にデバッグが困難な問題につながります。これらの API を変更する必要がある場合、文字列リテラルを調べて、どの JSONstructがどのフィールドを使用しているかを調べるのに多くの時間がかかります。


質問 - Redux

pythonコミュニティのメンバーの間で一般的な、これに対するより良いアプローチはありますか? でこれを行っていた場合C++、前の例は次のようになります。

私の最初のアプローチは次のとおりです。

  • object として初期化できないabc抽象基本クラスを作成し、読み取り専用の定数を設定するために使用します。
  • そのクラスをプロジェクト全体の共通モジュールとして使用します。
  • これらの定数を使用することで、スペルが間違っているとシンボルが存在しないため、モンキー パッチ エラーの可能性を減らすことができますが、文字列リテラルのタイプミスはコード レビューをすり抜けてしまう可能性があります。

私の提案する解決策 (アドバイス/批判を受け入れる)