\r\n\r\n

Pythonで簡単なクラスを作成する方法

プログラミングを成功させるには、クラスを作成できることが必要です。ここでは、簡単なPythonのクラスを作成するために知っておくべきことを説明します...

オブジェクト指向言語では、クラスは、そのクラスのオブジェクトを作成し使用するためのテンプレートを表す、拡張可能なコードの一部です。クラスのオブジェクトは、定義されたクラスのインスタンスへの参照に過ぎません。

pythonの基礎知識

プログラミング言語Pythonでは、各データセグメントはクラスのインスタンスとして表現される。この言語に馴染みのない方は、Python for Beginnersガイドをご参照の上、お進みください。

クラスは、そのクラスのすべてのインスタンスに共通の実装を持つメンバ関数(メソッドとも呼ばれる)の形で一連の動作を提供し、またそのインスタンスの状態情報をプロパティの形で表現する方法を決定するものである。

続きを読む: Pythonのクラスメソッド:重要な違い

以下のコードは、RaceCar クラスの実装を提供する Python で定義されたクラスの例です。

このクラスの各インスタンスは、異なる車種の簡単なモデルを提供し、次のステータス情報を含む:車名、ドライバー名、車のプレート番号、現在の速度、速度違反の料金、色。

このクラスの車には、各車両に特殊なセンサーが搭載されており、ドライバーが法定速度である時速140マイルを超えると、50ドルの罰金が課されます。

クラス例(自動車)

class Car:#C***tructor#the init method is resp***ible for initialising the values of the instance #variables in the class.def __init__(self, car_name, driver_name, license_plate_number, current_speed, speeding_charge, colour):self.car_name = car_nameself._driver_name = driver_nameself._license_plate_number = license_plate_numberself._current_speed = current_speedself._speeding_charge = speeding_chargeself._colour = colour#Accessor methods#The get_car_name method returns the name of the cardef get_car_name(self):return self._car_name#The get_driver_name method returns the name of the driverdef get_driver_name(self):return self._driver_name#The get_license_plate method returns the license plate of the cardef get_license_plate(self):return self._license_plate#The get_current_speed method returns the current speed at which the car is #movingdef get_current_speed(self):return self._current_speed#The get_speeding_charge method returns the total amount of money that the #driver has to pay for over-speedingdef get_speeding_charge(self):return self._speeding_charge#The get_colour method returns the colour of our sweet ride!def get_colour(self):return self._colour#Mutator methods#The set_driver value changes the driver of our car.def set_driver(self, new_driver):self._driver_name = new_driver#The speeding_ticket method ensures that the driver is charged 50 bucks when#he or she caught speeding above 140 miles per hour :(def speeding_ticket(self, current_speed):if current_speed <= 140:return Falseelse:self._speeding_charge += 50return True#The make_payment method ensures that the driver is able to pay for all the #amount that he or she owes for speeding ticket charges.def make_payment(self, amount_paid):self._speeding_charge -= amount_paid

Pythonクラス例図解

self "パラメータ

まず、クラスで宣言されたメソッド署名と、プログラマが関数を呼び出す際に使用するメソッド署名の違いに注意しましょう。例えば、このクラスで定義されている getttpu color メソッドは、self という引数をひとつだけ取ります。

しかし、プログラマがクラスのインスタンスに対してこのメソッドを呼び出すときは、引数を与えません。同様の現象は、speedingu ticket メソッドでも見られます。このメソッドは、クラス内で2つのパラメータ(self と currentu speed)を取るように定義されていますが、プログラマーは 'currentu speed' パラメータの値だけを指定してメソッドを実行することが可能です。

self "引数の目的は、プログラマが与えた値ではなく、メソッドを呼び出したオブジェクトのインスタンスに結びつけることだからだ。

コンストラクタ

クラスのコンストラクタは、ユーザーがそのクラスのオブジェクトのインスタンスを作成するために呼び出すことができるクラスのメソッドを指します。Carクラスでは、次のような構文でオブジェクトのインスタンスを作成することができます。

#creating our very own Bugatti :)Car(“Bugatti”, “David Sasu”, 90828, 0, 0, "Cherry Red")

このコードを実行すると、Car クラスの \ init メソッドが呼び出されます。このメソッドの役割は、提供されたインスタンス値を使用して新しく作成されたクレジットカーオブジェクトを生成することです。Carクラスの各オブジェクトは、次の6つのインスタンス変数で構成されています。

  • 車名
  • ドライバー名
  • 車載用プレート
  • 現在の速度
  • スピード違反の料金
  • _カラー

アクセッサーメソッド

これらのメソッドは、オブジェクトのインスタンスの状態情報にアクセスするために記述されています。

  • 車名取得
  • ドライバ名の取得
  • ナンバープレートを取得する
  • 現在の速度を取得する
  • スピード違反の料金徴収
  • カラーを取得する

突然変異の方法。

これらのメソッドは、オブジェクト・インスタンスの状態情報を変更するために使用されます。Carクラスでは、Mutatorメソッドは次のように記述されています。

  • ドライバーのセットアップ
  • スピード違反のチケット
  • 支払方法

カプセル化の概念

"カプセル化 "とは、オブジェクト指向設計の原則で、プログラムの構成要素がそれぞれの実装の内部詳細を明らかにしないようにすることを表す言葉です。カプセル化の概念について理解を深めるために、カプセル化についての記事をご覧ください。

エラーチェック

Carクラスの実装は、プログラマーから受け取る入力によってクラッシュしたり失敗したりするので、堅牢とは言えません。

まず、overdriveanthusu ticket と make_u payment メソッドの引数の型、およびコンストラクタの引数の型はチェックしていないことに注意しましょう。ユーザーが必要のない引数を与えた場合、プログラムがクラッシュすることがあります。例えば、ユーザーがオーバードライブ・チケット("chips ahoy")のようなものを呼び出すと、メソッドが期待する型が文字列ではなく整数であるため、プログラムがクラッシュします。

Pythonのクラスの基本がわかったところで

この記事では、PythonのクラスとPythonのクラスオブジェクトの概念について紹介します。また、カプセル化、"self "識別子、アクセッサメソッド、ミューテータメソッドなど、Pythonのクラスを構築するための考え方も紹介されています。

この情報があれば、簡単なPythonクラスを作成し、自分でテストすることができるはずです :)

あなたが興味を持っているかもしれない記事

匿名者
匿名者

0 件の投稿

作家リスト

  1. admin 0 投稿
  2. 匿名者 0 投稿

おすすめ