1. ホーム
  2. python

[解決済み] 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自身も外界から隠すことができます。
  • より読みやすく、保守しやすいコード : トップレベルクラスの中に小さなクラスを入れ子にすることで、コードが使用される場所の近くに配置されます。

主な利点は整理整頓です。インナークラスで実現できることは ができます。 で達成できることは、それがなくても達成できます。