[解決済み] Pythonの内部クラスは何のためにあるのですか?
2022-10-16 13:39:04
質問
Pythonのインナー/ネストされたクラスが私を混乱させます。それらがなければ達成できない何かがあるのでしょうか?もしそうなら、それは何ですか?
どのように解決するのですか?
引用元 http://www.geekinterview.com/question_details/64739 :
インナークラスの利点。
- クラスの論理的なグループ化 : もしあるクラスが他の1つのクラスにとってのみ有用であれば、そのクラスに組み込み、2つを一緒にしておくことは論理的なことです。このようなヘルパークラスを入れ子にすることで、パッケージがより合理的になります。
- カプセル化の強化 : 2つのトップレベルクラスAとBがあり、Bが他の方法ではプライベートと宣言されたAのメンバにアクセスする必要があるとします。クラスBをクラスAの中に隠すことで、Aのメンバをプライベートと宣言し、Bはそれにアクセスすることができます。また、B自身も外界から隠すことができます。
- より読みやすく、保守しやすいコード : トップレベルクラスの中に小さなクラスを入れ子にすることで、コードが使用される場所の近くに配置されます。
主な利点は整理整頓です。インナークラスで実現できることは ができます。 で達成できることは、それがなくても達成できます。
関連
-
[解決済み] 複数の例外を1行でキャッチする(ブロックを除く)
-
[解決済み] Pythonのリストメソッドであるappendとextendの違いは何ですか?
-
[解決済み] 最小限の驚き」と「変更可能なデフォルトの引数
-
[解決済み] 自分」という言葉は何のためにあるのか?
-
[解決済み】if __name__ == "__main__": は何をするのでしょうか?
-
[解決済み】__str__と__repr__の違いは何ですか?
-
[解決済み] PythonでSVGからPNGに変換する
-
[解決済み] pandasのタイムゾーンに対応したDateTimeIndexを、特定のタイムゾーンに対応したナイーブなタイムスタンプに変換する。
-
[解決済み] Pythonでマルチプロセッシングキューを使うには?
-
[解決済み] Django で全てのリクエストヘッダを取得するにはどうすれば良いですか?
最新
-
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のJSONでDecimalオブジェクトをシリアライズする
-
[解決済み] 内部クラスから外部クラスへアクセスする方法は?
-
[解決済み] Pythonのキャッシュライブラリはありますか?
-
[解決済み] googletransがエラー 'NoneType' オブジェクトに 'group' 属性がない、と言って動かなくなった。
-
[解決済み] 辞書のキーと値を交換するにはどうすればよいですか?
-
[解決済み] 小数点以下1桁を取得する[重複]。
-
[解決済み] スペースがないテキストを単語のリストに分割する方法
-
[解決済み] djangoフレームワークでフォームフィールドから値を取得するには?
-
[解決済み] Pythonの辞書にあるスレッドセーフについて
-
[解決済み] 新しいpip backtrackingの実行時問題の解決