Pythonでのオブジェクト指向プログラミングの概念

公開: 2020-12-01

オブジェクト指向は、関数やロジックの代わりにクラスやオブジェクトの概念に従うプログラミングパラダイムです。 これは、コードの可読性と保守性を向上させる方法でコードを編成する、凝ったコーディング方法としても知られています。 OOPの概念はプログラミングの重要なトピックであり、データサイエンスのさまざまなタスクに再利用可能なモジュールを構築するのに役立ちます。

これは、ベースモデルを再利用してカスタムレイヤーを追加するPytorchなどのさまざまなライブラリを使用してディープラーニングモデルを構築する際の前提条件となることがよくあります。 この概念が何を教えているのか、そしてこれを実際のユースケースに適用する方法を探りましょう。

目次

OOPの概念とは何ですか?

どのブランドのスマートフォンでもかまいませんが、それらはすべてのスマートフォンに共通するさまざまなものです。 すべてに画面、スピーカー、ボタンがあり、ソフトウェアレベルでは、ほとんどすべてがAndroid搭載です。 ここで、ほとんどのハードウェアコンポーネントを制御するカーネルでさえ、すべての企業がソフトウェアをゼロから作成している場合を考えてみましょう。

これは退屈で費用のかかるプロセスになるため、デバイスの価格が上昇します。 要件に応じてメーカーが時間の経過とともに変更できる抽象モデルまたは一般化モデルがある場合はどうなりますか? この概念は、コードが異なるアクセサーメソッドを持つクラスで構造化されているこのクラスベースのメソッドをキャプチャしようとします。

クラスとオブジェクトとは何ですか?

クラスは、実装する必要があるものの青写真です。 前の例を考えると、人に電話をかけたり、電話やメッセージを受信したり、音楽を再生したり、その他のことをしたりする機能があります。

これらはすべてスマートフォンに共通しており、内部動作も同様であり、スマートフォン機能のクラスまたはクラスと見なすことができます。 オブジェクトは、変更を加えた製品でこの一般的な実装を使用するすべてのスマートフォンブランドとして定義できます。

この基本クラスには複数のインスタンスが存在する可能性があり、すべてのインスタンスは、他のオブジェクトに干渉することなく、異なる値の状態を保持できます。 Pythonでは、予約済みのキーワードクラスを使用してクラスを宣言できます。 さらに、__ init__コンストラクターは、クラス変数を初期化するために使用されます。

クラス会社:

def __init __(自己):

self.name ='upGrad'

def display_name(self):

print(f”会社名は:{self.name}”)

cm = Company()

cm.display_name()

また読む:インドのPython開発者給与

OOPのさまざまな柱

このパラダイムの基本的な構成要素に精通したので、この概念の最も重要な機能/特性のいくつかを見てみましょう。

カプセル化

これは、クラスのメソッド(または関数)とそれに関連するデータがカプセル化されているか、偶発的または外部アクセスから保護されていることを示しています。 これは、プライベートスコープまたは保護スコープで定義された属性にクラス外でアクセスできないことを意味します。

Pythonには、この言語にはプライベート変数の概念がないため、クラスの外部から属性にアクセスできるという懸念があります。

宣言の最初に二重アンダースコアを使用してプライベート属性を認識する方法があります。同じオブジェクトを介してクラスの外部でこれにアクセスしようとすると、Pythonは検出するたびに名前マングリングを適用するため、AttributeErrorが表示されます。プライベート変数。 属性には引き続きアクセスできるため、これによって属性にセキュリティが付与されることはありません。

継承

その言葉が示すように、それは親クラスと呼ばれる既存のクラスの一部を、ほとんどまたはまったく変更せずに子クラスと呼ばれる新しいクラスに持っていきます。 これをこの例に接続すると、すべてのスマートフォンブランドが、基本的な機能の実行に役立つ一般的な電話クラスを継承し、さらに、必要に応じてユーザーエクスペリエンスを向上させるためにコードを追加できます。 Pythonでは、クラスの継承は次の方法で行われます。

クラスA:

一部のコンテンツ

クラスB(A):

派生クラスのコンテンツ

関数のオーバーライドと呼ばれる継承に関連する別の概念があります。 一般的なスマートフォンのカメラ機能があまり良くなく、メーカーがこれに対するより良い解決策を持っていると仮定します。 子クラスでこの関数を再度定義し、そこに変更を適用することで、この関数を直接オーバーライドできます。

抽象化

これは、ブループリントまたはサブクラス実装へのインターフェースを定義します。 これは、一部のメソッドが完全に実装されていない基本クラスで定義されており、抽象ビューのみが定義されていることを意味します。 作成するモジュールおよびサブモジュールのさまざまな機能を追跡するのに役立ちます。

たとえば、一部のスマートフォンはNFC(ニアフィールドコネクティビティ)をサポートしており、この機能は基本クラスで定義でき、その実装は結果の電話の子クラスでコーディングできます。 このようにして、抽象基本クラスは、モジュールと後続の実装の全体像を提供できます。 次に例を示します。

クラス電話:

def camera(self):

合格

def NFC(self):

合格

クラスXyz(電話):

def NFC(self):

Trueを返す

について学ぶ:トップPythonツール

ポリモーフィズム

根本的な意味で言えば、それは同じものの複数の形を意味します。 ポリモーフィズムは、渡された引数の数またはタイプに基づいて関数を定義します。 たとえば、Pythonのlength関数は、任意のタイプの反復可能オブジェクトまたはオブジェクトを受け取り、整数の長さを返します。

これは関数のオーバーロードとして引用することもできますが、ここにPython言語のキャッチがあります。 異なる引数で同じ名前の関数を定義することはできません。定義すると、最後のエントリのみが考慮されます。

OOPの実用的なユースケース

この概念が何であるか、そしてそれがどのような機能を提供するかを見てきました。 この概念を適用できるいくつかの例を見てください。

Jinjaテンプレート:ルートとサーバー側を処理するPythonのFlaskフレームワークの経験がある場合、このテンプレートはフロントエンドでこのデータを処理するのに役立ちます。 通常、ベースHTMLファイルが作成され、それがすべてのページに継承されて、Webサイト全体で同じレイアウトになります。

Kivyアプリケーション:これは、クロスプラットフォーム(AndroidおよびIOS)のGUIベースのPythonアプリケーションを構築できるライブラリであり、ここではほとんどのプログラミングがOOPの概念に基づいています。

ORM:オブジェクトリレーショナルマッパーは、任意の言語を使用してアプリケーションコードでリレーショナルデータベースを定義する方法を提供します。 たとえば、Djangoでは、さまざまなタイプのユーザーのクラスを使用して、さまざまなタイプのモデルを定義できます。

結論

この記事では、OOPの概念とは何か、それはビルディングブロック(クラスとオブジェクト)、さまざまな柱について説明し、このパラダイムが採用されているいくつかの例を強調しました。 より優れたコード管理、コラボレーション、およびこれに依存する他のプログラムへの抽象的な機能の提供により、このプログラミング方法が検討される場所は数多くあります。

python、データサイエンスについて知りたい場合は、IIIT-BとupGradのデータサイエンスのPGディプロマをチェックしてください。これは、働く専門家向けに作成され、10以上のケーススタディとプロジェクト、実践的なハンズオンワークショップ、業界の専門家とのメンターシップを提供します。業界のメンターとの1対1、400時間以上の学習、トップ企業との就職支援。

OOPとは何ですか?

オブジェクト指向プログラミング(略してOOP)は、ソフトウェア設計を機能やロジックに従って編成するのではなく、データに従って編成するコンピュータープログラミング手法です。 OOPは、オブジェクト、つまり、オブジェクトを管理するために必要なロジックではなく、開発者が制御したい個別のプロパティと動作を持つデータフィールドに焦点を当てています。 このプログラミング方法は、絶えず更新または保守される大規模で複雑なアプリケーションに最適です。 OOPは、製造、設計、およびモバイルアプリケーションのイニシアチブを対象としています。 この言語の他の利点は、コードの再利用性、スケーラビリティ、および効率です。

OOPのさまざまな言語は何ですか?

オブジェクト指向プログラミング言語は、今日のコンピューター業界で最も頻繁に使用されるコーディング言語のいくつかを構成しています。 OOP言語はいたるところにあります。 これらの言語は、データとコードの両方を保持するオブジェクトを利用します。 カプセル化、抽象化、ポリモーフィズム、および継承は、オブジェクト指向プログラミングのアイデアです。 人気のあるオブジェクト指向プログラミング言語には、Java、Python、C ++、Lisp、Perlなどがあります。 これらは、クラスとオブジェクトのパラダイムを利用したプログラミングを支援します。 オブジェクト指向の原則をサポートする他の言語は、Perl、Objective-C、Dart、Lisp、JavaScript、およびPHPです。

なぜOOPが好まれるのですか?

OOPが好まれる理由はたくさんあります。 開発者はオブジェクト指向コードを再利用できます。 継承を使用して、以前に作成された情報と機能を複製することもできます。 これにより、時間が節約され、コードが簡素化され、スペースが節約され、指でコーディングしやすくなります。 ほとんどのコードは1つの場所にあり、呼び出されて再利用されるため、保守が非常に簡単です。 ほとんどの言語はある程度のセキュリティを提供しますが、カプセル化にはセキュリティが含まれるため、オブジェクト指向言語の方が便利です。 オブジェクト指向プログラミング言語は、プログラムをオブジェクトとクラスに分割します。 これは、アプリケーションに、よりモジュール化されたフレームワークを提供するため、有利です。