まず第一に、オブジェクト指向プログラミングは python に固有のものではないことを明確にする必要があります;
オブジェクト指向はプログラミングのアイデアです;
オブジェクト指向の考え方では
すべてがオブジェクトです
オブジェクト指向の簡単な理解:
オブジェクト指向は、データ構造とそれらを処理するためのメソッドのセットをオブジェクトに構成し、同じ動作をするオブジェクトをクラスに分類し、カプセル化によってクラスの内部の詳細を隠し、継承によってクラスを一般化し、オブジェクトベースの型を実装することです。ベースの動的分類。
クラスとは
クラスはオブジェクトのグループ (またはクラス) を表し、各オブジェクトは特定のクラスに属し、そのクラスのインスタンスと呼ばれます。
オブジェクト指向プログラミングでは、現実世界の物事や状況を表すクラスを記述し、それらのクラスに基づいてオブジェクトを作成します。
クラスを作成するときは、オブジェクトの大きなクラスに共通する動作を定義します。クラスに基づいてオブジェクトを作成すると、各オブジェクトは自動的にこの共通の動作を持ち、必要に応じて各オブジェクトに独自の個性を与えることができます。クラスからオブジェクトを作成することをインスタンス化と呼びます。これにより、クラスのインスタンスを使用できます。オブジェクト
指向プログラミングでは、オブジェクトという用語は、データ (プロパティ) のコレクションと、これらのデータにアクセスして操作するための一連のメソッドを大まかに意味します。オブジェクトは、プロパティとメソッド構成で構成されます。プロパティはオブジェクトに属する変数にすぎませんが、メソッドはプロパティに格納された関数です。
- Python でのクラスの作成
class Person():
def __init__(self):
pass
def set_name(self, name):
self.name = name
def get_name(self):
return self.name
def greet(self):
print("Hello, world! I'm {}.".format(self.name))
Person は、3 つのメソッド定義を含むクラスの名前であり、class ステートメントは、関数を定義する別の名前空間を作成します。パラメータ self は、オブジェクト自体を指します。
メソッドinit () は、新しいインスタンスが作成されるたびに Python が自動的に実行する特別なメソッドです。このメソッドの名前には、先頭と末尾に 2 つのアンダースコアがあります。これは、Python の既定のメソッドと通常のメソッドの間で名前が競合しないように設計された規則です。
self は有用であり、不可欠ですらあります。これがないと、オブジェクト自体 (操作するプロパティが属するオブジェクト) にアクセスできるメソッドはありません。
既定では、オブジェクトのプロパティは外部からアクセスできます。オブジェクトの外部からプロパティにアクセスできないようにするには、プロパティをプライベートとして定義します。プライベートであり、アクセサ メソッドを介してのみアクセス可能
です Python は、プライベート プロパティを直接サポートしていません. メソッドまたはプロパティをプライベートにする (外部からアクセスできないようにする) には、その名前を 2 つのアンダースコアで始めるだけです
オブジェクトは何ですか
オブジェクトは現実世界のエンティティであり、オブジェクトとエンティティの間には 1 対 1 の対応があります。つまり、現実世界のすべてのエンティティはオブジェクトであり、特定の概念です。オブジェクトには次の特性があります。
オブジェクトにはプロパティと動作があります。
オブジェクトには変化する状態があります。
オブジェクトは一意です。
オブジェクトはクラスのインスタンスです。
オブジェクトは、クラスによって定義されたデータ構造のインスタンスです
person = Person()