学習のpython 12(オブジェクト指向)

オブジェクト(オブジェクト)
オブジェクト指向(OOP)
- Pythonは、オブジェクト指向プログラミング言語であり、
オブジェクト指向言語、すべての操作は、オブジェクトによって実行されるプログラミング言語-
-指向プログラミング言語
-プロセスは、手段私たちのプログラムのロジックが処理を完了するために、各段階の抽象化によって、一つのステップの1に分割されていること
-機能分割にプロセス指向プログラミングのアイデアを小さな一歩に、我々はによって小さいものを完了しましたプログラムを完了するための手順
-これはプログラム的に、人間の心に沿って、それを準備することは比較的簡単である
-しかし、コードはこのように書かれているが維持するだけの機能に適用され、困難な
オブジェクト指向プログラミング言語、オブジェクト-
-オブジェクト指向プログラミング言語は、むしろプロセスに焦点を当てるよりも、注目の対象である
-オブジェクト指向言語のために、すべてのものがオブジェクトである
-オブジェクト指向プログラミングのアイデア、統一対応するオブジェクトに保存されたすべての機能を、直接オブジェクトを完了するために、あなたは、対応するオブジェクトを見つけることができます
-コード書かれたこの方法では、読みやすく、そして容易なメンテナンスを
-しかし、この方法を書いて、いない従来の考え方に沿ったもので、小さなトラブルまで書き込み
カテゴリ(クラス)
- Pythonの組み込みオブジェクト(数値、タプル、辞書、リスト、文字列...)
-しかし、オブジェクトを内蔵しており、すべてのニーズを満たすことができない、多くの場合、オブジェクトの開発にそれをすべてをカスタマイズする必要がある
-クラス
-描画の同等の、私たちはクラスに基づいてオブジェクトを作成する必要があるプログラムで
- int型のように()、ブール値()、 STR ()リスト()のdict() ... これらの一種である
- A = INT(20)#int型クラスのインスタンスを作成します
-私たちのカスタムクラスを先頭に大文字を使用する必要があります
-オブジェクトのクラスである(すべてのことがあります原則オブジェクト)!

はじめにクラスが
クラスを定義するクラスのキーワードを使用し、単純なクラスを定義する
構文は:
クラスのクラス名([親]):
ブロック

クラスのMyClass():#空のオブジェクト
パス
印刷(MyClassの)が
使用するMyClassのオブジェクトを作成して
使用します以下のようなオブジェクトを作成するためのクラスは、関数呼び出しのように
MC = MyClassの()#1 MCはMyClassのによって作成されたオブジェクトであり、MCはMyClassのインスタンスである
印刷(MC、タイプ(MC) )

でisinstance(オブジェクトがクラスのインスタンスであるかどうか)をチェックする
クラスMyClassの():#空のオブジェクト
パス
MC = MyClassの()
はMyClassのMC2 =
プリント(MC、タイプ(MC))
R&LT =#解析(のMC、MC2)でisinstanceそれはクラスのインスタンスであるかどうかを
印刷(r)は

、今私たちは、このクラスのオブジェクトは空のオブジェクトを介してMyClassのです作成し
たオブジェクトに変数を追加することができますが、オブジェクトの属性は変数と呼ばれる
構文:オブジェクトは任意のものとすることができる(名=属性値を属性タイプは、関数)が含ま
:クラスのMyClass()

MC = MyClassの
mc.name = "JKD" #オブジェクトが名=属性値を属性。
印刷(mc.name)

定義型:
- :すべてのものは、2つの部分から構成
1.データ(プロパティ)
2.動作(メソッド)
-クラス内のコードのブロックは、我々は、変数と関数を定義することができ
変数がオブジェクトを介してアクセスするプロパティ名としてパブリックプロパティクラスのインスタンスとすることができ、そのクラスのすべてのインスタンスを。なる
クラスのパブリックメソッドのインスタンスになる機能は、すべてのそのようなインスタンスがオブジェクトを介して利用可能である。()形式のメソッド名呼ばれる
-注意:
メソッド呼び出し、最初のパラメータが自動的にインタプリタによって送信され、定義処理を少なくとも1つのパラメータを定義するために!

-のクラスのプロパティとメソッドにアクセスする方法の例としては
、クラスで定義されたプロパティとメソッドをどのような場合は、アクセスすることができ、公開されています
-流動特性及びメソッドを見つけるために、
我々は、オブジェクトのプロパティを呼び出すとき、インタプリタまず、それは属性が含まれている場合は、現在のオブジェクトを見て、
そうでない場合は、現在のオブジェクトのプロパティ値に戻るには、
そうでない場合、現在のオブジェクトのクラスオブジェクトに見つけることが、あなたは、クラスオブジェクトのプロパティ値を返す場合
、あなたはまだいない場合エラー!
-クラスオブジェクトとインスタンスオブジェクトは、プロパティ(同じ方法を)保存することができます
-この属性(メソッド)はすべてのインスタンスで共有されている場合は、クラスオブジェクトに保存しなければならない
-この属性(メソッド)はインスタンスである場合ユニークな、オブジェクトはインスタンスを保存する必要があります

-一般的には、オブジェクトのインスタンスは、クラスオブジェクトに保管、保存方法を属性

)(クラスPerson:
#のコードブロックのクラスは、我々は変数と関数を定義することができ
、我々はすべてのインスタンスの共有財産となります変数の#クラスの定義を、すべてのインスタンスは、これらの変数にアクセスすることができ
、すべてのインスタンスを名=「SWK」#パブリックプロパティをアクセスすることができます

も定義することができます#関数を、クラスのすべてのインスタンスによってアクセス可能なメソッドと呼ばれるクラスで、クラスで定義された関数、
DEFのsay_hello(S、I):
リターン(「こんにちは%のSは」%I )

P1 =人()
P2 =人()
プリント(p1.say_hello( "SWK"))
プリント(p2.name)

プロセスのオブジェクトを作成する:
のP1 =実行中のプロセス人()
1.変数を作成
2.メモリ新しいオブジェクトの作成
3 .__ INIT __(自己)メソッドは実行
オブジェクトに割り当てられた前記オブジェクトID

基本構造クラス:
クラス、クラス名([親]):
パブリックプロパティ...
初期化方法#オブジェクト
デフ__init __(自己、...) :
ブロックの
別の方法は、複数のかもしれ#
デフmethod_1(自己、...) :
.....
.....

クラスパーソン:
DEF __init __(自己、名):
self.name名=
DEF ST(セルフ):
リターン( "みなさんこんにちは、私はSの%" %のself.name)

P1人=( "SWK")
P2 =人( "ZBJ")
P3 =人()#これがあるので何も割り当てられた初期値が文句を言わないだろう
印刷(p1.st())
を印刷(p2.st())
印刷(p3.st())

-演習:
犬表すクラス(犬)をカスタマイズしてみてください
:属性の
名前、年齢、性別、身長の
方法:
クライ()
クラス・ドッグ():
DEF __init __(自己、名前、年齢、性別、身長):
self.name =名前
self.age =年齢
self.gender =ジェンダー
self.height高さ=
DEFクライ(セルフ):
リターン(self.name、 "呼び出し")

P1 =犬( "黒" 、8、 "男性"、30)
P2 =犬( "カイ"、9、 "男性") #1 エラーデフォルト値は満たしていない
印刷(p1.cryを())
プリント(p2.cryは())
今、私たちは、データのセキュリティを強化する方法を必要と
財産を自由に変更することはできません。1.
(:年齢は負にすることはできません例えば)プロパティを任意の値に変更することはできません。2.


リライト:
#を子供がいる場合クラスメソッドメソッドを呼び出すために、サブクラスのインスタンスを通じて、親クラスと同じ名前がある場合は、それは、サブクラスではなく、親クラスを呼び出して、
この機能は書き換える方法と呼ばれている

#親:クラスの動物を
DEFラン(自己):
印刷( "実行時に")
DEF SLEEP(セルフ):
印刷( "スリープ")

クラス・ドッグ(動物):#動物のサブクラス
DEF樹皮(セルフ):
印刷( "コール")
DEFファイル名を指定して実行(セルフ):
印刷( "ドッグラン")

犬の犬=()
Dog.run()

このメソッドは、オブジェクトと呼ばれる#は、そこに直接呼び出しがある場合、現在のオブジェクトのメソッドかどうかを見に優先権を与える
あなたはまだ、優れたオブジェクトを探して外出しない場合は、そうでない場合は、現在のオブジェクトの親クラスの面積が見つけます

クラス(オブジェクト):
DEF試験(自己):
プリント( "AAA")
クラスB(A):
合格
クラスCを(B):
合格

C = C()
C.test()

おすすめ

転載: www.cnblogs.com/wangwen022/p/11388284.html