6オブジェクト指向プログラミング

6.1カテゴリーの定義と使用

  • classキーワードはクラスを定義し、その後にスペース、クラス名が続きます。
  • 他の基本クラスから派生した場合
    • すべての基本クラスを一対の角かっこで囲み、コンマで区切ります。
    • 次にコロンがあり、最後に新しい行があり、クラスの内部実装を定義します。
  • クラス名の最初の文字は通常大文字です

ここに画像の説明を挿入

  • クラスを定義した後、それを使用してオブジェクトをインスタンス化できます。
  • そして、「オブジェクト名。メンバー」を通じて、データメンバーまたはメンバーメソッドにアクセスします。

ここに画像の説明を挿入

ここに画像の説明を挿入

  • Pythonはpassというキーワードを提供します。実行しても何も起こりません。
    • クラスと関数の定義、または選択構造で使用され、空のステートメントを示します
  • 関数の実装方法がわからない場合は、
    • または、将来のソフトウェアアップグレードのために事前に少しスペースを確保してください。
    • 利用可能なパス「プレースホルダー」。

  • 関数の定義と同様に、クラスを定義するときに、クラスに三重引用符で注釈を付けることもできます

ここに画像の説明を挿入

6.2データメンバーとメンバーメソッド

6.2.1プライベートおよびパブリックメンバー

  • プライベートメンバーは、クラスの外では直接アクセスできません。
    • 通常、クラス内でアクセスして操作します。
    • または、オブジェクトのパブリックメンバーメソッドを呼び出して、クラスの外部からアクセスします。
  • パブリックメンバーは一般に公開されています。
    • クラス内でアクセスしたり、外部プログラムで使用したりできます。

  • メンバー名が2つ(またはそれ以上)の下線で始まり、2つ(またはそれ以上)の下線で終わっていない場合、それはプライベートメンバーであることを意味し、それ以外の場合はプライベートメンバーではありません。
  • 「オブジェクト名._クラス名__xx」は、外部プログラムのプライベートメンバーにもアクセスできます。
    • しかし、これはクラスのカプセル化を破壊します、それは推奨されません

ここに画像の説明を挿入

  • "。"は、名前空間、モジュール、またはオブジェクトのメンバーにアクセスできるメンバーアクセス演算子です
    。IDLE、Eclipse + Pydev、WINGIDE、Pycharm、またはその他のPython環境では、オブジェクトまたはクラス名の後に "。"が付き、これらは自動的にリストされますすべての公的メンバーのうち
  • "。"下線を追加した後、プライベートメンバーを含む、オブジェクトまたはクラスのすべてのメンバーをリストします。
  • 指定されたオブジェクト、モジュール、または名前空間のすべてのメンバーをdir()で表示することもできます。

ここに画像の説明を挿入

  • 下線がメンバーを保護し始め、
    • これらのメンバーにアクセスできるのは、クラスオブジェクトとサブクラスオブジェクトだけです。
    • 通常、クラスの外で直接アクセスすることはお勧めしません。
    • モジュール内で1つ以上のアンダースコアで始まるメンバーは、モジュールインポートからインポートできません* '__all__変数がモジュールで使用され、そのようなメンバーがインポートできることを明示的に示さない限り
  • システムによって定義された特別なメンバーのそれぞれの前後に2つの下線
  • 2つ以上の下線で開始し、2つ以上の下線で終了しないことで、プライベート
    メンバーを示します。クラスオブジェクトのみがアクセスでき、サブクラスオブジェクトはメンバーにアクセスできませんが、オブジェクトの外部にはアクセスできません

6.2.2データメンバー

  • オブジェクトに属するデータメンバーは、コンストラクターinit()で定義されます。
    • 他のメンバーメソッドでも定義できます。
    • インスタンスメソッドでデータメンバーを定義してアクセスするときに、プレフィックスとしてselfを使用します
  • クラスに属しているデータメンバーは、クラスのすべてのオブジェクトによって共有され、1つのオブジェクトには属していません。
    • クラスを定義する場合、このようなデータメンバーは通常、メンバーメソッドの定義には含まれません。
  • メインプログラムまたはクラスの外では、オブジェクトデータメンバーはインスタンス(オブジェクト)に属し、オブジェクト名でのみアクセスできます。
  • クラスデータメンバーはクラスに属し、クラス名またはオブジェクト名でアクセスされます。

  • クラスデータメンバーの共有を使用すると、このクラスのオブジェクトの数をリアルタイムで取得でき、このクラスによって作成されるオブジェクトの最大数を制御できます

ここに画像の説明を挿入

6.2.3メンバーメソッド、クラスメソッド、静的メソッド、抽象メソッド

589件のオリジナル記事を公開 300件の賞賛 80,000回以上の閲覧

おすすめ

転載: blog.csdn.net/zhoutianzi12/article/details/105574938