Pythonのオブジェクト指向(エンド)

オブジェクト指向

まず、特別な修飾子

  総メンバー:

  プライベートメンバー:__メンバー名(民営化:プラスメンバー名の前に2つのアンダースコア)。

    実際にクラス名としてパッケージ__ _メンバー名

    - 直接外部アクセスすることはできません

    -サブクラスは、直接の親クラスのprivateメンバにアクセスすることはできません 1 クラスFを:

2      DEF  __init__ (自己):
 3          self.ge = 123
 4          自己。__gene = 123の
 5つの         
6  classsのS(F):
 7      デフ __init__ (自己、名):
 8          self.name = 名前
 9          自己.__年齢= 18
 10          スーパー(S、自己)。__init__ ()
 11      デフショー(自己):
 12          プリント(self.name)
 13          プリント(自己。__age 14          プリント(self.ge)
 15          プリント(自己。__gene 16  
17 S = Sで(' zhangsan ' 18 s.show()

特別の第二に、メンバー

  __init __:OBJ =クラスのオブジェクトを作成するためのクラス名()、およびデフォルトの実行__init __()メソッド。

  __del__:代わりデストラクタ、およびオブジェクトが破棄されるときに呼び出されるコンストラクタ。

   __call__:オブジェクト名+()実行のデフォルトの方法。

1  クラスはFoo:
 2      DEF   __init__ (自己):
 3          プリント' のinit ' 4  
5      DEF   __call__(DELF、*引数、** kwargsから):
 6           プリント' コール' 7  
8はFoo()()

  __int __:INT(オブジェクト)は、自動的に__int __()メソッドを実行します。

  __str __:STR(オブジェクト)は、自動的に__str __()メソッドを実行します。

1  クラス  はFoo:
 2      DEF   __init__ (自己):
 3つの         パス
4  
5      DEF   __int__ (自己):
 6          復帰 1111年
 7  
8      DEF   __str__ (自己):
 9          リターン  ' ASDF ' 
10  
11 OBJ = フー()
 12  プリント(OBJ、INT (OBJ)、STR(OBJ))

  __dict__:すべての辞書によってカプセル化されたコンテンツオブジェクトを返さ。

三、メタクラス、クラス父親

  、Pythonのすべてが内のオブジェクトであります

  B、クラスFooの:

      パス

    OBJ =フー()

    OBJは、物体はFooのインスタンスであり; fooはクラスオブジェクトの一種であります

1  クラス  はFoo(オブジェクト):
 2      DEF   FUNC(自己):
 3          プリント(123 4つの。対応==================
 5。 DEFの  機能(自己):
 6      プリント( 123 7。 
8。フー=タイプ(' フー'、(オブジェクト)、{ [ FUNC ' :関数})
 9。クラスのオブジェクトを宣言し、クラスオブジェクト名:fooが、(オブジェクト)を継承し、クラスオブジェクトは、FUNCと呼ばれるメソッドを有します
1  クラス  がMyType(タイプ):
 2      DEF   __init__(自己、*引数、** kwargsから):
 3          #1 自己=フー
4          プリント' がMyTypeのINIT ' 5          超(MYTYPE、自己)。__init (何を、塩基、辞書)
 6  
7      デフ  __call__(自己、* argsを、** kwargsから):
 8          #の自己=はFoo 
9          プリント' がMyTypeコール' 10          OBJ =自己。__new__(SELT、* argsを、** kwargsから)
 11         自己。__init__ (OBJ)
 12  
13  クラス   はFoo(オブジェクト、メタクラス= がMyType):
 14      デフ  __init__ (自己)
 15          プリント' フー・INIT ' 16  
17      DEF   __new__(CLS、*引数、** kwargsから):
 18          #1 CLS =フー
19          プリント' fooは__new__ ' 20          リターン   オブジェクト。__new__(CLS、*引数、** kwargsから)
 21  
22 COJ = フー()
 23  
24 出力:
 25          INITがMyType
 26である         がMyTypeコール
 27          はFoo    である__new__ 
28          はFoo INIT
 29  
30  第一段階:作成底インタプリタクラスfooへの上からのコードの実行、最初のコールがMyType __ __init();
 31である 第二相:フークラスはオブジェクトobjを作成し;
 32      。1 、fooが最初)(__callの__内がMyTypeを呼び出すがMyTypeオブジェクトので、フー()であり、
 33は、      2 Fooクラスによってオブジェクトobjを作成し、:ターンコール
 34は              __callの__のがMyType():オブジェクト+ ()メソッドが自動的に呼び出される
 35              fooがオブジェクト作成:フー__new __()の
 36              のFooの__init __():フー・オブジェクトがインスタンス化

  C、オブジェクト・クラスのオブジェクト・タイプは、タイプ(...)は、オブジェクトインスタンスオブジェクトはクラスオブジェクトであります

おすすめ

転載: www.cnblogs.com/TianLiang-2000/p/11616312.html