PythonでのOOPの概念に関する完全ガイド

公開: 2020-10-22

オブジェクト指向プログラミングまたはOOPは、しばらくの間、ソフトウェアの世界に不可欠な部分でした。 これは、一定レベルの自由を提供し、開発者のプログラミングの成果を向上させる優れたプログラミングパラダイムです。

すべての開発者が知っておくべき特定の基本的な概念と原則があります。 これらは、このモデルを使用してアプリケーションを開発するための前提を推進します。

ここでは、Pythonの重要でありながら基本的なOOPの概念のいくつかを見ていきます これらの概念により、プログラマーはより良い結果を達成し、アプリを充実した方法でモデル化することができます。

目次

オブジェクト指向プログラミングとは何ですか?

初心者の場合、ここから誘導を開始します。 素人のようにOOPを理解して、それをどのように解決できるかをより深く理解しましょう。

このプログラミング構造では、類似したプロパティまたは動作を持つものを1つのオブジェクトに簡単に組み合わせることができます。 人口統計について話している場合、それはこのプログラミングモデルの単一のオブジェクトになります。 同様に、実行するアクションについて話している場合、それは別のオブジェクトになります。

これらはすべて、生データを含むオブジェクトです。 ソフトウェアソリューションは、これらのオブジェクトを一緒に最終目標を達成するようにプログラムします。 これらのオブジェクトは、ユーザーがプログラムしたとおりにいくつかのアクションを一緒に実行し、結果を提供します。

これを理解するのに役立つ優れた例は、電子メールプログラムです。

受信者の名前や件名など、電子メールの内容を含むオブジェクトが1つあるとします。 添付ファイルと電子メールの送信の詳細を示す2番目のオブジェクトがあります。 これらのオブジェクトを自動的に組み合わせるプログラムを設計し、完全に作成された電子メールに目的の添付ファイルが用意されていることを確認して、受信者に送信します。

これがOOPの仕組みです。 ただし、一部の概念はこれを実行に移します。 これらの概念とそれらがどのように機能するかを簡単に見てみましょう。

読む: Pythonはオブジェクト指向言語ですか?

クラスを定義する方法は?

クラスはすべてのオブジェクトを定義するものであり、PythonのOOP概念の重要な側面です 目、耳、口、鼻などの4つのオブジェクトがあるとします。 これらはクラスである顔の一部です。

クラスを定義する方法から始めましょう。

あなたが電子メールと呼ばれるクラスについて話しているとしましょう。

クラスのメールアドレス:

合格

これがクラスの定義方法です。 「パス」を使用して、コンパイラでコードを実行するときにバグが発行されないようにします。

クラスを定義するだけではあまり役に立たないかもしれません。 魅力的でコードを役立つものにするために、いくつかのプロパティを追加する必要があります。 したがって、クラスにオブジェクトを追加する必要があります。

._init _()メソッドは、クラス内のプロパティを定義するときに役立つことが証明されるものです。

これにより、クラスの新しいオブジェクトを作成するたびに、このメソッドがパラメーターを初期状態に設定するため、毎回新しいオブジェクトが初期化されます。

このメソッドの最初のパラメーターは、複数のパラメーターを割り当てた場合でも、常に自己になります。

では、この場合はどうなりますか? 新しいクラスを作成したとしましょう。 インスタンスはselfパラメータに転送されます。 その結果、._ init_()は、定義されたオブジェクトに新しいプロパティを割り当てることができます。

それでも使い方を考えているのなら、例を挙げて理解しましょう。

クラスのメールアドレス:

def ._init _(self、name、recipient、address):

self.name = name

self.recipient=受信者

self.address=アドレス

理解を深めるために、このコードを分解してみましょう。

上記のコードで表現されたインデントは重要です。 PythonでOOPを使用してプログラムを作成する場合も、同じように一致させる必要があります 上記のコードの自己変数を理解しましょう。

self.nameは、nameと呼ばれる属性を生成します。 nameパラメーターの値がこの属性に割り当てられます。 同様に、属性と値は他の自己変数にも割り当てられます。

これらの属性はインスタンスと呼ばれます。 特定のインスタンス内で言及されているすべての属性の値を指定する必要があります。 ウェルカムメールと育成メールの2種類があるとしましょう。 メールの受信者は、両方のインスタンス(ウェルカムメールと育成メール)で異なります。

一方、クラス属性は異なります。 これらには、すべてのクラスインスタンスで同じ値が含まれます。 たとえば、これらはすべて受信メールです。 これは、それらに対して定義できるクラス属性です。

クラスのメールアドレス:

#Class属性

メール:「受信メール」

def ._init _(self、name、recipient、address):

self.name = name

self.recipient=受信者

self.address=アドレス

学習する方法: Javaプロジェクトをコーディング、コンパイル、および実行する方法

クラス変数とインスタンス変数を理解する

PythonのOOPをよりよく理解するために、クラス属性と2つのインスタンス変数を作成した上記の例を見てみましょう

クラスのメールアドレス:

メール:「受信メール」

def ._init _(self、name、recipient、address):

self.name = name

self.recipient=受信者

self.address=アドレス

このクラス内のオブジェクトのインスタンス化について話しましょう。 これらの各オブジェクトに値を設定する必要があります。 これは、ガイドの前半で説明したように、すべてのオブジェクトの初期値になります。 これらのオブジェクトに値を割り当てないと、TypeErrorが発生します。

>>> Email()

トレースバック(最後の最後の呼び出し):

<module>のファイル「<pyshell#6>」、1行目

Eメール ()

TypeError:__init __()に4つの位置引数がありません:'name'、'recipient'、および'address'

クラス名の直後に値を追加できます。

Nurture Email = Email(Nurture、David、david @ xyz.com)

ウェルカムメール=メール(ようこそ、デイジー、dreams @ abc.com)

上記のコードを使用して、育成メールとウェルカムメールの2つのインスタンスを生成しました。 上記のコードのクラスインスタンスの後に定義された__init__()を確認してみましょう。 自己を含む4つのパラメータが表示されます。 ただし、自分自身の変数については言及されていません。 理由を理解しましょう?

したがって、クラス内に新しいオブジェクトを作成するときはいつでも、クラスをインスタンス化しています。 これを行う際に、変数が格納されるメモリアドレスを割り当てます。 新しいオブジェクトをインスタンス化するとすぐに、Pythonは自動的にインスタンスを作成し、.__ init __()メソッドの最初の変数に渡されます。 その結果、この方法では自己が削除されます。

クラス変数を使用すると、作成したすべてのインスタンスに変数または値が関連付けられていることを確認できます。 これにより、より迅速で簡単な結果が保証され、プログラミングの結論がより安全になります。

また読む:新入生と経験者のための47のOOPSインタビューの質問と回答を読む必要があります

まとめ

ここでは、Python OOPプログラミングモデルを使用してクラス、オブジェクト、およびメソッドを作成するさまざまな側面を理解しました。 これとは別に、PythonでのOOPプログラミングの中核となるインスタンスやインスタンス化などの概念も理解しました。 次に、継承、ポリモーフィズム、抽象化、カプセル化など、これらのインスタンスとクラスを管理する原則を理解する必要があります。 これらは、アプリケーションとその結果を推進するPythonのコアOOP概念です

Pythonファネルをさらに進めるには、基本を明確にして根付いている必要があります。 それで、クラスに飛び込んで、それがどのように機能するかを理解してください。 アプリケーションをセットアップする前に、これらの変数を少し試して、その結果を理解してください。

ペースの速い技術の進歩の最前線に立つためにデータサイエンスを学ぶことに興味がある場合は、upGrad&IIIT-BのデータサイエンスのPGディプロマをチェックして、将来のために自分自身をスキルアップしてください。

なぜOOPを使用するのですか?

オブジェクト指向プログラミング(OOP)は、操作、操作、およびパッケージ化できる属性と動作を備えた再利用可能な「オブジェクト」の開発に依存するプログラミングフレームワークです。 Pythonは、OOPと他のフレームワークの両方をサポートしています。 Pythonでは、クラスを使用してOOPを実現します。 Pythonには、オブジェクト指向プログラミングの通常の特徴がすべて備わっています。 開発者はPythonアプリケーションでOOPを利用します。これは、コードをより再利用可能にし、より大きなプログラムでの作業を容易にするためです。 クラスは一度だけ定義して複数回利用できるため、OOPシステムはコードの複製を防ぎます。 その結果、OOPを使用すると、「Do n't Repeat Yourself」(DRY)の概念に従うことが簡単になります。

クラスとは何ですか?

Pythonクラスは、新しいオブジェクトを生成するための青写真に似ています。 オブジェクトとは、コーディング中に変更または変更したいものです。 変数を定義するときに発生するクラスオブジェクトをインスタンス化すると、新しいオブジェクトが最初から作成されます。 クラスオブジェクトは、必要に応じて何度でも再利用できます。 クラスは、各アイテムを構成するために使用されます。 これを特定の種類のアイテムの青写真と見なします。 クラスは、そのタイプのオブジェクトに必要な属性をリストしますが、それらに値を割り当てません。 クラスは、同じタイプのすべてのオブジェクトによって共有されるメソッドも指定します。

インスタンス変数とは何ですか?

クラスインスタンスは、Pythonでインスタンス変数を所有します。 インスタンス変数の値は、リンクされているインスタンスに基づいて変更される場合があります。 これは、1つの値しか割り当てることができないクラス変数とは異なります。 インスタンス変数は、クラスメソッド内で宣言されます。 クラスを宣言するときに、インスタンス変数に値を割り当てることができます。 クラスを宣言するときに、引数として割り当てたい値を指定します。