ホームページ  >  記事  >  バックエンド開発  >  【Python学習】オブジェクト指向プログラミング

【Python学習】オブジェクト指向プログラミング

little bottle
little bottle転載
2019-04-09 09:27:352162ブラウズ

プロセス指向プログラミングでは、コンピューター プログラムを一連のコマンド セット、つまり一連の関数を順次実行するものとみなします。 。プログラミングを簡素化するために、プロセス指向の関数は引き続きサブ関数に分割されます。つまり、大きな関数が小さな関数に分割されて、システムの複雑さが軽減されます。

Python と Java はどちらもオブジェクト指向言語です。オブジェクト指向プログラミングの特徴データのカプセル化、継承、ポリモーフィズム
1. クラスとインスタンス
オブジェクト指向プログラミングの最も重要な概念はクラスとインスタンスです)、クラスは Student クラスなどの抽象テンプレートであり、インスタンスはクラスに基づいて作成された特定の「オブジェクト」であることを覚えておく必要があります。各オブジェクトには同じメソッドがありますが、そのデータは異なる場合があります。
Python では、クラス キーワードはクラスを定義するためにも使用されます。クラスの後にはクラス名が続きますが、最初は大文字にする必要があります。その後の括弧は、どのクラスを継承するか、つまりその親クラスを示します。

class Student(object):
    pass

この変数には属性を自由にバインドできます

>>>nick.name = 'Liu Ling Hao'
>>>nick.name
'Liu Ling Hao'

後で定義されるさまざまな関数はメソッドです。要約オブジェクト = 属性メソッド

クラスはテンプレートとして機能できるため、インスタンスを作成するときに、バインドする必要があると思われるいくつかの属性を強制的に入力できます。現時点では、より特別な __init__ メソッドを使用する必要があります。 (int の前後に 2 つのアンダースコアがあります)

__init__ メソッドの最初のパラメーターは常に self で、作成されたインスタンス自体を表します。

class Student(object):
    def __init__(self, name, score):
        self.name = name
        self.score = scor
>>> bart = Student('Bart Simpson', 59)
>>> bart.name
'Bart Simpson'
>>> bart.score
59

__init__ メソッドがある場合、インスタンスの作成時に空のパラメーターを渡すことはできません。__init__ メソッドに一致するパラメーターを渡す必要があります2. カプセル化、継承、ポリモーフィズム

オブジェクト指向プログラミングの重要な機能は、データのカプセル化です。

上の例の名前とスコアと同様に、クラス内で定義された関数を通じて直接アクセスできます。たとえば、データの一部を追加したり、リストを並べ替えたりできます。実装はできますが、実装はできません。インテリアは、どう調整するかで決まる。

クラスを定義する際、既存のクラスを継承することができ、新たに作成したクラスをサブクラス(Subclass)、継承したクラスを基底クラスまたは親クラスと呼びます。クラス(ベースクラス、スーパークラス)。

継承の利点は、親クラスのすべての機能を取得できることです。サブクラスの場合は、親クラスに基づいて書き続けることができるため、より便利です。

class Person(object):
    def idea(self):
        print('study is happy')class Liu(Person):
    pass
liu =Liu()liu.idea

study is happy

もちろん、サブクラスが親クラスと同じメソッドがある場合、親クラスのメソッドを自動的にオーバーライドします。

ポリモーフィズム: 異なるオブジェクトが同じメソッドの異なるアクションに応答する

>>>class Nick1:
    def name(self):
          	 print("我是1")
>>>class Nick2:
    def name(self):
    		 print("我是2") 
>>>a = Nick1()
>>>b = Nick2()
>>>a.name
我是1
>>>b.name
我是2

使用されている関数名は同じですが、実装は異なります。

def run(animal):
    animal.run()
    animal.run()
    >>> run(Animal())
Animal is running...
Animal is running...
>>> run_twice(Dog())
Dog is running...
Dog is running...

ポリモーフィズムの利点は、Dog または他の動物を渡す必要がある場合、Dog はすべて Animal タイプであるため、Animal タイプを受け取るだけで済み、Animal タイプに従って動作することです。 Animal 型には run() メソッドがあるため、渡された型は、Animal クラスまたはサブクラスである限り、実際の型の run() メソッドを自動的に呼び出します。これがポリモーフィズムです。

[おすすめコース: Python ビデオ チュートリアル

]###

以上が【Python学習】オブジェクト指向プログラミングの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はcsdn.netで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。