[解決済み] クラスと辞書のどちらを使うべきですか?
2022-08-23 20:53:02
質問
以下のような、フィールドのみでメソッドを持たないクラスがあります。
class Request(object):
def __init__(self, environ):
self.environ = environ
self.request_method = environ.get('REQUEST_METHOD', None)
self.url_scheme = environ.get('wsgi.url_scheme', None)
self.request_uri = wsgiref.util.request_uri(environ)
self.path = environ.get('PATH_INFO', None)
# ...
これは簡単にdictに変換することができます。このクラスは将来の追加に対してより柔軟で、高速な
__slots__
. では、代わりにdictを使うメリットはあるのでしょうか?dict はクラスよりも速いのでしょうか?そして、スロットを持つクラスよりも速いでしょうか?
どのように解決するのですか?
なぜこれを辞書にするのですか?どんな利点があるのでしょうか?後でコードを追加したい場合はどうなりますか? どこで
__init__
のコードはどこに行くのでしょうか?
クラスは、関連するデータ(と通常はコード)を束ねるためのものです。
辞書はキーと値の関係を保存するためのもので、通常、キーはすべて同じ型であり、すべての値もまた1つの型である。キー/属性の名前が前もってすべてわかっていない場合、データを束ねるのに便利なこともありますが、多くの場合、これは設計に何か問題があることを示すサインです。
これはクラスにしておきましょう。
関連
-
[解決済み] 辞書を値で並べ替えるにはどうしたらいいですか?
-
[解決済み] Pythonで辞書に新しいキーを追加するにはどうすればよいですか?
-
[解決済み] 与えられたキーがすでに辞書に存在するかどうかをチェックする
-
[解決済み] Pythonの辞書からキーを削除するにはどうしたらいいですか?
-
[解決済み] 辞書のリストを辞書の値でソートするにはどうしたらいいですか?
-
[解決済み] Pythonで静的なクラス変数は可能ですか?
-
[解決済み] どのような場合に '$this' よりも 'self' を使うべきですか?
-
[解決済み] 辞書から要素を削除する
-
[解決済み] C++でクラスと構造体はいつ使い分けるべきか?
-
[解決済み] Pythonの検索パスを他のソースに展開する
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] ネストされたPythonのdictをオブジェクトに変換する?
-
[解決済み] Pythonの構文に新しいステートメントを追加することはできますか?
-
[解決済み] Django のテストデータベースをメモリ上だけで動作させるには?
-
[解決済み] バブルソートの宿題
-
[解決済み] django.db.migrations.exceptions.InconsistentMigrationHistory
-
[解決済み] pandasのタイムゾーンに対応したDateTimeIndexを、特定のタイムゾーンに対応したナイーブなタイムスタンプに変換する。
-
[解決済み] Pandasを使って、既存のExcelファイルに新しいシートを保存する方法は?
-
[解決済み] Pythonでファイルの読み込みと上書きをする
-
[解決済み] Pythonでランダムなファイル名を生成する最良の方法
-
[解決済み] pipの依存性/必要条件をリストアップする方法はありますか?