「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > Python によるオブジェクト指向プログラミングの概要

Python によるオブジェクト指向プログラミングの概要

2024 年 11 月 8 日に公開
ブラウズ:153

Introduction to Object-Oriented Programming in Python

Python プログラミング言語

Python は、インタープリタ型のオブジェクト指向プログラミング言語です。高レベルの組み込みデータ構造と動的型付けのおかげで、新しいアプリケーションの迅速な開発や、異なる言語で記述された既存のコンポーネントを組み合わせるスクリプト コードとしても人気があります。

Python のシンプルで学びやすい構文は読みやすさを重視しており、長期的なプログラム保守のコストと複雑さを軽減します。コードを含めるためのさまざまなパッケージをサポートしているため、プログラムのモジュール化とコードの再利用が促進されます。 Python インタープリターと広範な標準ライブラリは、すべての主要なプラットフォームで無料で利用できます。

すべてのプログラミング言語は、もともと特定の問題や欠点を解決するために設計されました。 Python が開発されたのは、Guido van Rossum と彼のチームが、C および Unix シェル スクリプトで開発するのは骨が折れると感じたからです。これらの言語での開発は遅く、経験豊富なエンジニアでも、これまで見たことのないコードを理解するのに時間がかかりました。

Python を学習すると、さまざまな種類のプログラムを構築できるようになり、ユーザーが新しいツールや機能のセットを利用できるようになります。 Python は次のような多くのことを実行できますが、これに限定されません:

ウェブベース

  • ファイルの読み取りと書き込み
  • ネットワーク リクエストをリッスンし、応答を送信します
  • データベースに接続してデータにアクセスし、データを更新します

非ウェブベース

  • コマンド ライン インターフェイス (CLI)
  • サーバー
  • ウェブスクレーパー
  • ゲーム

参考文献:
Pythonについて
Python の初期 (Guido van Rossum)

オブジェクト指向プログラミングパラダイム

オブジェクト指向プログラミング (OOP) は、オブジェクトの概念に基づいたプログラミング パラダイムであり、属性と呼ばれるフィールドの形式でデータを含めることができます。または、関数またはメソッドと呼ばれるプロシージャの形式のプロパティとコード。 OOP はデータ構造を重視し、ユーザーがコードを構造化してその機能をアプリケーション全体で共有できるようにします。これは、プログラムが順番に構築され、特定の一連のステートメントがプログラム内で共有および再利用されるときにプロシージャが呼び出される、または呼び出される手続き型プログラミングとは対照的です。

参考文献:
Python によるオブジェクト指向プログラミング
オブジェクト指向プログラミングと手続き型プログラミングの違い

OOP 規約

OOP に関連する重要な用語をいくつか示します。この記事の後半で例を使って説明します。

  • クラスとインスタンス
  • インスタンス メソッド
  • 属性

コードでのいくつかの実装例

クラスとインスタンス:
クラスは、同様の特性と動作を共有するインスタンス、別名オブジェクトを作成するための設計図です。これは、オブジェクトが持つことができ、実行できる一連の属性とメソッド、別名関数を定義します。

クラスは、同じプロパティと動作を持つオブジェクトの複数のインスタンスを作成できるようにするテンプレートまたは構造として機能します。したがって、データと関数を 1 つのユニットにカプセル化し、コードの再利用性と編成を促進します。

これはクラス Pet の例です:

class Pet:
    def __init__(self, name, species):
        self.name = name
        self.species = species

    def introduce(self):
        print(f"Hi, my name is {self.name} and I am a {self.species}.")

    def eat(self, food):
        print(f"{self.name} is eating {food}.")

インスタンス メソッド

上の例では、Pet クラスには 3 つのメソッドがあります:

my_pet = Pet("Max", "dog")
my_pet.introduce()  # Output: Hi, my name is Max and I am a dog.
my_pet.eat("bones")  # Output: Max is eating bones.

init() メソッドは、コンストラクターと呼ばれる特別なメソッドです。これは、Pet クラスの新しいインスタンスが作成されるときに自動的に実行されます。各インスタンスの名前と種の属性を初期化します。

introduc() メソッドは、名前と種類を含むペットを紹介するメッセージを出力します。

eat() メソッドはパラメーター、フードを受け取り、ペットが指定されたフードを食べていることを示すメッセージを出力します。

Pet クラスの複数のインスタンスを作成でき、各インスタンスには独自の名前と種の属性があることに注意してください。

属性

下の表は、ペット クラスのペットが持つ可能性のあるいくつかの潜在的な属性を示しています。

クラスペット:

ID 名前
1 コリーン 5
2 乱暴 2
3 ひげ 11

異なる列は、異なる属性またはプロパティ、つまりすべてのペットが持つデータの一部に対応しますが、個々のペット間では異なる場合があります。 ID、名前、年齢、種を属性として持つクラス Pet の例を次に示します。

class Pet:
    def __init__(self, id, name, age, species):
        self.id = id
        self.name = name
        self.age = age
        self.species = species

さまざまなペットの呼び出しまたはインスタンス化は、次のように実行できます。

# Creating instances of Pet class
dog1 = Pet(1, “Colleen", 5, "dog”)
dog2 = Pet(2, “Rowdy", 2, “dog”)
cat3 = Pet(3, “Whiskers”, 11, “cat")

OOP の利点

OOP の主な利点は次のとおりです:

  • モジュール性と再利用性
  • カプセル化
  • メンテナンス性
  • 継承とポリモーフィズム

モジュール性と再利用性: OOP を使用すると、コードをより小さなモジュール式オブジェクトに分割できます。これらのオブジェクトはプログラムのさまざまな部分または他のプログラムで再利用できるため、コードの再利用性が促進され、重複が削減されます。

カプセル化: OOP はデータと関数をオブジェクトにカプセル化します。これは、複雑なコードベースを編成および管理するのに役立ちます。これにより、開発者はオブジェクトの内部実装の詳細を非表示にし、オブジェクトと対話するためのクリーンなインターフェイスのみを公開することができます。

保守性: OOP は、明確で組織化されたコード構造を促進します。オブジェクトとその相互作用は簡単に理解および変更できるため、コードの保守とデバッグが容易になります。

継承とポリモーフィズム: 継承を使用すると、既存のクラスに基づいて新しいクラスを作成し、その属性と動作を継承できます。これにより、コードの再利用が促進され、クラスの階層構造の作成に役立ちます。ポリモーフィズムにより、異なるクラスのオブジェクトを互換的に使用できるようになり、柔軟性と拡張性が実現します。

柔軟性とスケーラビリティ: OOP は、プログラミングに対する柔軟でスケーラブルなアプローチを提供します。コードの他の部分に影響を与えることなく、新しいクラスを作成したり、既存のクラスを変更したりすることで、新しい機能を簡単に追加できます。

コラボレーション: OOP は、ソフトウェアの設計と実装に共通の構造と用語を提供することで、開発者間のコラボレーションを促進します。これにより、複数の開発者がオブジェクトとその相互作用について共通の理解を使用して、プログラムの異なる部分に同時に作業できるようになります。

テストとデバッグ: OOP を使用すると、テストとデバッグが簡単になります。オブジェクトを個別にテストできるため、問題の切り分けと修正が容易になります。さらに、OOP はモジュール化された疎結合コードの使用を奨励しており、これにより単体テストの作成が容易になります。

まとめ

前のセクションで、より組織化され、保守しやすく、スケーラブルなコードの作成に貢献する Python の OOP の利点をすべて説明しました。これにより、生産性とコードの品質が向上します。

リリースステートメント この記事は次の場所に転載されています: https://dev.to/oki99doki/introduction-to-object-owned-programming-in-python-161?1 侵害がある場合は、[email protected] に連絡して削除してください。
最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3