pythonオブジェクト向けパッケージ

1456 ワード

一般化されたカプセル化:オブジェクトをインスタンス化し、オブジェクト空間にいくつかのプロパティをカプセル化します.狭義のパッケージ:私有制
≪プライベート・メンバー|Private Members|ldap≫:≪プライベート・静的フィールド|Private Static Fields|ldap≫、≪プライベート・メソッド|Private Method|ldap≫、≪プライベート・オブジェクト・プロパティ|Private Object Properties|ldap≫
プライベート静的フィールド、プライベートメソッド、プライベートオブジェクト属性、クラスの外部にアクセスできません.-#インスタンス化されたオブジェクトは、プライベート静的フィールド、プライベートメソッド、プライベートオブジェクト属性にアクセスできません.-#クラス名は、プライベート静的フィールド、プライベートメソッド、プライベートオブジェクト属性にアクセスできません.
プライベート静的フィールド、プライベートメソッド、プライベートオブジェクト属性、クラスの内部にアクセスできます.プライベート静的フィールド、プライベートメソッド、プライベートオブジェクト属性については、本クラスの内部のみアクセス可能であり、クラスの外部、派生クラスはアクセス不可である.
pythonでは、二重下線の先頭でプロパティを非表示にします(プライベートに設定されています)-#実はこれは変形操作にすぎません-#クラスのすべての下線の先頭の名前は_xは自動的に形成されます:クラス名_xの形式--この自動変形の特徴:--1.クラスで定義された_xはself._のような内部でのみ使用できます.x,参照するのは変形の結果です.——-2.このような変形は実は外部の変形に対してで、外部で通過することができません_xという名前がアクセスした——–3.サブクラス定義の場合_xは親定義の__を上書きしません.x,サブクラスにおける変形:サブクラス名_x、親クラスでは:親クラス名_xすなわち、二重下線の先頭の属性は、サブクラスに継承されると、サブクラスは上書きできません.

————1.このメカニズムは、外部から直接属性にアクセスすることを制限するものではありません.クラス名と属性名を知っていれば、名前をつづることができます.クラス名_属性名————2.変形のプロセスはクラスの定義が一度だけ発生し、定義後のコピー操作では変形しません.--3.継承では、親がサブクラスに自分のメソッドを上書きさせない場合は、メソッドをプライベートとして定義できます.
パッケージは単純な意味での隠蔽ではありません
1.データのカプセル化—データを非表示にするのは目的ではありません.非表示にしてデータを操作するインタフェースを外部に提供し、インタフェースにデータ操作の制限を追加してデータ属性操作の厳格性を達成することができます.2.パッケージング方法—目視は隔離の複雑さである.ヒント:プログラミング言語では、対外的に提供されるインタフェース(インタフェースは1つのインタフェースと理解できる)は、関数であり、インタフェース関数と呼ばれます.これはインタフェースの概念とは異なり、インタフェースはインタフェース関数のセットを表しています.