オブジェクト指向(OPP)
簡単な紹介
オブジェクトとは何ですか?
オブジェクトは、コンテナが実際にデータを格納するように設計されているメモリ指定されたデータ・オブジェクトの領域であります
オブジェクトの構造
- ID(識別)
- 一意のオブジェクトを識別するために使用される、各オブジェクトは、一意のIDを有します
- Idが発生したメモリアドレスを説明するために行った、idが対象です
- タイプ(タイプ)
- オブジェクトの種類はどのような機能を決定します
- ()タイプ別のオブジェクトタイプを表示します
- 値(値)
- 値は、オブジェクトに格納されている特定のデータを参照します
- 可変オブジェクト(リスト、辞書、集合)&不変(INT、STR、STR、BOOL、タプル)
オブジェクト指向の例
操作のすべてを理解することは簡単である、いわゆるオブジェクト指向言語は、オブジェクトによって行われています
プロセス指向- >オブジェクト指向
冷蔵庫、いくつかのステップで象?
- 対応する機能を開くために冷蔵庫を開け--------
- ストレージは----------関数象に対応する意味します
- -------------対応する関数閉鎖
、思考のオブジェクト指向の方法で、オブジェクト指向の考え方である
事は、オブジェクト指向になって簡略化されます
、冷蔵庫に象、冷蔵庫が私の顔の目的である、私は目的関数がオープンしていることを知っている、店、閉じ冷蔵庫を開ける方法であるため、保存するためにどのように、どれだけ近いか私はちょうどそれを使用し、私を気にする必要はありません。
オブジェクトを通じて、オブジェクトが関数を使用する必要があります
(梱包、ポリモーフィズム、継承)
、例えば、私は面接に行ってきました、インタビュアーは格付け、私の目標、監査する彼の能力で
、私は、私の機能インタビュアーたオブジェクトを答えは、候補者
意味オブジェクトは、有形のものすることができ、実際の生活の中で、ある一つの特定のものを指します。オブジェクト指向プログラミングでは、オブジェクトは、コンピュータシステムの構成要素と呼ばれます。オブジェクト指向プログラミングでは、オブジェクトは、他のアクションであり、データは一方が2つの意味が含まれています。そして、オブジェクトデータの操作は、それらの組み合わせです。オブジェクトを操作するだけでなく、タイムリーな演算結果記録することができますだけでなく、
プロセス指向
- 小さなステップの機能的分解のためのプロセス
- しかし、これが唯一のプログラムで、多くの場合、機能、我々は再プログラミング、再利用の必要性が比較的低い、他の機能を実現する必要が適用されます
- 人々の考え方に沿って、より多くの、書き込みが簡単です
クラス(クラス)
- クラスを理解することは簡単で、クラスが描画され、そのクラスに応じてプログラムでオブジェクトを作成する必要があります
構文:クラスのクラス名([親]):
ブロック
class MyClass():
pass
a = MyClass() # 用MyClass这个类创建了一个对象mc,mc是MyClass的实例
print(int)
print(MyClass)
print(MyClass())
print(a)
# <class 'int'>
# <class '__main__.MyClass'>
# <__main__.MyClass object at 0x0000017C77DAB588>
# <__main__.MyClass object at 0x0000017C77DAB288>
本研究の目的は、組み込みのintなどのオブジェクト、パイソンある前に、あなたが見ることができるint型はクラスで、クラスのMyClassクラスの一種であるとして、私たちの定義(ハンプ命名法に名前を付けることにより、ノートでは)、オブジェクトである
ときに我々メモリアドレスの値クラスを印刷するときに返されます。
でisinstance()
- オブジェクトは、クラスのインスタンスであるかどうかを検出します
class MyClass():
pass
a = MyClass()
r = isinstance(a, MyClass)
r1 = isinstance(int, MyClass)
print(r)
print(r1)
# True
# False
オブジェクトの作成プロセス
何クラスですか?
- クラスはオブジェクトである(オブジェクトクラスは、オブジェクトを作成するために使用されます)
- クラスはObject型のタイプです
- あなたは、オブジェクト、オブジェクト属性と呼ばれる変数に変数を追加することができます。構文:オブジェクト属性名=属性値
class MyClass():
pass
a = MyClass()
print(id(MyClass), type(MyClass))
b = 10
print(id(b),type(b))
# 2133892710792 <class 'type'>
# 140706426417696 <class 'int'>
クラスは型クラスのオブジェクトであります
class MyClass():
pass
a = MyClass()
a.name = 'spider man'
a.power = 'spin'
# spider man spin
print(MyClass().name)
# AttributeError: 'MyClass' object has no attribute 'name'
私たちは、「= a.name」でMyClassのに変数を追加し、私たちは「MyClassの()。名前」印刷、プロパティの不足がエラーを検出しました、MyClassのオブジェクトは、属性名をしない
メモリに
クラス定義
- クラスとオブジェクトは、抽象または現実の業務にプログラムの内容です
2つの部分で構成され、事実上すべてのトランザクションの
- データ(属性)
- 行動(メソッド)
コードのクラスでは、我々は変数と関数を定義することができます
プロパティと呼ばれるクラス変数には、
- クラスインスタンス変数は、すべての公共財産になることができ、すべてのインスタンスは、これらの変数にアクセスすることができます
と呼ばれるクラスメソッドで - これらのメソッドは、クラスのインスタンスで呼び出すことができます
- それはいくつかのパラメータの機能は、いくつかのパラメータを渡す必要がある場合だけでなく、いくつかの主要なパラメータを渡す*可変長パラメータ、変数パラメータを渡す**
- 方法、デフォルトの配信パラメータは、クラスのメソッドは、少なくとも1つのパラメータを定義する場合、このパラメータは標準ではないルールである、自己通常
class People():
name = 'Batman'
age = '30'
power = 'rich'
print(name)
p = People()
p.name = 'iron man'
print(People)
自己とは何ですか
- このパラメータは、自己は、オブジェクト自体のメソッドを呼び出しています
- 私たちは、標準化された自己を使用して、クリス、balabalaすることができ、可能であり、
class People():
name = 'Batman'
age = '30'
power = 'rich'
def SayHi(self):
print(id(self),self)
p1 = People()
p1.SayHi()
print(id(p1),p1)
# 2698834200392 <__main__.People object at 0x000002745F0DC748>
# 2698834200392 <__main__.People object at 0x000002745F0DC748>
class People():
name = 'Batman'
age = '30'
power = 'rich'
def SayHi(self):
print('你好我是{}'.format(self.name))
p1 = People()
p2 = People()
p1.SayHi()
p1.name = 'iron man'
p1.SayHi()
p2.name = 'spider man'
p2.SayHi()
# 你好我是Batman
# 你好我是iron man
# 你好我是spider man
プロパティとメソッド
流動特性及びメソッドを探します
- 私たちは、パーサが現在のオブジェクトのプロパティやメソッドを見つける必要があります場合は、現在のオブジェクトの値が返された場合、プロパティやメソッドを呼び出すために行ったとき
- そうでない場合ではない場合、プロパティ値は、エラーをクラスオブジェクトを返した場合、現在のオブジェクトは、クラスオブジェクトを見つけることです
Classオブジェクトとインスタンスオブジェクトは、プロパティとメソッドを保存することができます持っています
- このプロパティまたはメソッドは、すべてのクラスによって共有されている場合、オブジェクトクラスが格納されるべきです
- このプロパティまたはメソッドは、独特の例であれば、オブジェクトのインスタンスに保存されるべきです