pythonオブジェクト、クラス、オブジェクト向け


classクラスobjectオブジェクトobject-oriented programmingオブジェクト向け、略称OOP attribute属性methodメソッドinheritance継承
pythonではクラスとオブジェクトを通じてオブジェクト向けのプログラミングオブジェクト向けプログラミングを実現し、最も重要な、主な目的はプログラムの重複使用性を高めることであり、これは関数の目的とpythonのすべてのオブジェクトに類似しており、クラスもオブジェクト1クラスは属性が近いオブジェクトの分類であり、人間類認知では属性が近いことによって「もの」を分類する.さらに「カテゴリ」には鳥類のような共通属性が羽毛であり、産卵によって子孫を産む.どの特別な鳥も鳥類の原型に基づいて対象に向かっているのは、以上の人間の認知をシミュレートする過程である.pythonでは、上記の「東西」を対象定義鳥類と呼ぶ

  
  
  
  
  1. class Bird(object):# , ;   
  2.     have_feather = True# , ;   
  3.     way_of_reproduction  = 'egg'# , ;   

定義類、名前鳥という「カテゴリ」で定義された変数、1羽があるかどうか、2生殖方式という2つの変数は、私たちが前に言った属性に対応しています.
もし私がニワトリを飼っていたら、summerと申します.彼は対象で、鳥に属している.前に定義したクラスの使用

  
  
  
  
  1. summer = Bird()# ,  
  2. print summer.way_of_reproduction#  

第1文の付与文は、オブジェクトを作成し、summerがクラス"鳥"の1つのオブジェクトであることを説明し、summerが鳥の"クラス属性"の属性に対する参照がオブジェクトを通過することを説明する.属性(object.attribute)の形式で2種類の属性を実現することは変数であってもよいし、方法(動作)であってもよい人間の日常認識において、私たちは属性で「カテゴリ」を識別する際に、この「もの」によって何ができるかによって分類比を区別し、鳥類が移動する(これで家屋のカテゴリと区別できる).これらの動作はまた、移動によって位置の変化をもたらすpythonなどの結果をもたらし、このような属性を方法と呼ぶ.pythonでは「クラス内部で関数を定義する」ことで方法を説明します

  
  
  
  
  1. class Bird(object): 
  2.     have_feather = True 
  3.     way_of_reproduction = 'egg' 
  4.     def move(self, dx, dy):# , :  
  5.         position = [0,0
  6.         position[0] = position[0] + dx 
  7.         position[1] = position[1] + dy 
  8.         return position 
  9.  
  10. summer = Bird() 
  11. print 'after move:',summer.move(5,8)# ( ) 

単独関数を一般関数、略称関数と呼ぶ
クラスの関数(実はクラスの属性で、ただ1つの特殊な属性にすぎません)は、クラスの方法、略称の方法と呼ばれます
(カッコ内のobject、カッコ内がobjectの場合、このクラスに親がいないことを示します(先頭になります))
ここで、クラス'鳥'は、移動(クラスの関数move)という属性を追加します.
(関数/メソッドにはパラメータselfがあり、参照オブジェクト自体を容易にするために、関数/メソッドもオブジェクトです)、
関数/メソッドの最初のパラメータはselfでなければなりません
使用するかどうかにかかわらず
他の2つのパラメータ、dxdyは2方向に移動する距離を表し、moveメソッドは最終的に演算されたpositionに戻ってmoveメソッドを別途呼び出す場合、dxdyの値のみが渡され、selfパラメータを渡す必要はありません(slefパラメータは内部使用のためだけです)
3カテゴリ自体はさらにサブクラスに細分化することもできます
例えば、鳥類はさらに鶏、雁、イチョウに分けることができます.
OOPでは,上記の概念を継承することによって表現する.

   
   
   
   
  1. class Chicken(Bird):# , ; ; / ‘ ’  
  2.     way_of_move = ‘walk’# , ;   
  3.     possible_in_KFC = True  
  4.   
  5. class Oriole(Bird):# , ; ; / ‘ ’  
  6.     way_of_move = 'fly'  
  7.     possible_in_KFC = False  
  8.   
  9. summer = Chicken()  
  10. print summer.have_feather# /   
  11. print summer.move(5,8)  

我々が新たに定義したチキン(Chicken)クラスは、新たに2つの属性を追加し、移動方式(way_of_move)とKFCで見つけられる可能性がある(possible_in_KFC)
クラス定義では、カッコでBirdに変更され、Chickenは鳥類(Bird)の1つであることを説明するために使用されます.
サブクラス
(ChickenはBirdから継承されている)が、自然とBirdはChickenの

.この声明でpythonは知っています
ChickenはBirdのすべての属性を持つ
.summerが鶏類であることを宣言しただけで、鳥類の属性(変数属性have_featherでもメソッド属性moveでも)を持っていることがわかります.
また,オリオール類を定義し,同様に鳥類から継承した.このように,我々はイチョウに属するオブジェクトがある場合にも鳥類の属性を自動的に持つ.
継承制度により,プログラム内の重複情報と重複文を回避できる.(鳥から継承せずに2つのクラスをそれぞれ定義する場合は、鳥の属性を鶏類とイチョウ類の定義にそれぞれ叩かなければなりません)
したがって,オブジェクト向けにプログラムの再利用性が向上すると,オブジェクト向けは実際に人間の認知時の習慣に基づいて,様々なものを分類し,世界を知ることができる.私たちは祖先からこの認知過程を何百万年も練習してきたかもしれないので、対象に向かうのは人間の思考習慣に合ったプログラミング方法です.プロセス向け(すなわち,一つの文を実行して次の文を実行する)とは,実際には機械的思考である.オブジェクト向けのプログラミングを通じて、私たちは実際に私たちの自然な考え方に近づき、他の人と私たちのプログラムに含まれている考えを交流するのに便利です.その人はプログラマーではありません.
 
まとめ:オブジェクトを属性に基づいて分類する(objectをclassに帰す)方法は属性であり、動作を継承して親-子関係を説明することを表す.子クラスは、親クラスのすべての属性を自動的に持ちます.selfは、クラス定義に基づいて作成されたオブジェクトを表します.
オブジェクト:オブジェクト名=クラス名()参照オブジェクトのプロパティ:objectを作成します.attribute
作者:Vamei出典:http://www.cnblogs.com/vamei