クラスとオブジェクト | オブジェクト指向プログラミング | JavaScriptプログラマのためのPython入門

現在作成中です。今後加筆修正してまいります。
スポンサーリンク
スポンサーリンク

クラスとオブジェクト

この記事では、Pythonにおけるオブジェクト指向プログラミングの基本である「クラス」と「オブジェクト」について、JavaScriptプログラマ向けに解説します。JavaScriptとPythonはどちらもオブジェクト指向プログラミング(OOP)をサポートしていますが、構文やアプローチには違いがあります。これらの違いを理解し、Pythonのクラスとオブジェクトの使い方に慣れましょう。

Pythonのクラス定義

Pythonでは、classキーワードを使ってクラスを定義します。これはJavaScriptのクラス定義に似ていますが、Pythonのクラスは特にそのシンプルな構文が特徴です。

Pythonのクラス定義の例

class Dog:
    def __init__(self, name, age):
        self.name = name
        self.age = age

    def bark(self):
        return f"{self.name} says woof!"

この例では、Dogというクラスを定義し、nameageをインスタンス変数として持ちます。また、barkというメソッドを持ち、selfを使ってインスタンスにアクセスします。__init__はコンストラクタに相当し、クラスがインスタンス化される際に呼び出されます。

JavaScriptのクラス定義の例

class Dog {
    constructor(name, age) {
        this.name = name;
        this.age = age;
    }

    bark() {
        return `${this.name} says woof!`;
    }
}

JavaScriptでは、classキーワードを使い、constructorメソッドで初期化を行います。thisを使ってインスタンス変数にアクセスし、メソッドを定義する点はPythonと似ています。

オブジェクトの生成

クラスを定義した後は、そのクラスを使ってオブジェクト(インスタンス)を生成します。PythonとJavaScriptでは、どちらもnewキーワードを使わず、異なる方法でオブジェクトを作成します。

Pythonでのオブジェクト生成の例

my_dog = Dog("Buddy", 5)
print(my_dog.bark())

この例では、クラスDogのインスタンスを生成し、barkメソッドを呼び出しています。Pythonでは、newキーワードを使わず、クラス名に引数を渡してインスタンスを生成します。

JavaScriptでのオブジェクト生成の例

let myDog = new Dog("Buddy", 5);
console.log(myDog.bark());

JavaScriptではnewキーワードを使ってクラスのインスタンスを生成します。PythonとJavaScriptの大きな違いの1つは、このnewキーワードの有無です。

クラス変数とインスタンス変数

PythonとJavaScriptの両方で、クラス内の変数はインスタンス変数(インスタンスごとに異なる値を持つ変数)とクラス変数(全てのインスタンスで共有される変数)に分けられます。

Pythonのクラス変数とインスタンス変数の例

class Dog:
    species = "Canine"  # クラス変数

    def __init__(self, name, age):
        self.name = name  # インスタンス変数
        self.age = age

この例では、speciesはクラス変数であり、全てのインスタンスで共有されます。一方、nameageはインスタンス変数で、各インスタンス固有の値を持ちます。

JavaScriptのクラス変数とインスタンス変数の例

class Dog {
    static species = "Canine";  // クラス変数

    constructor(name, age) {
        this.name = name;  // インスタンス変数
        this.age = age;
    }
}

JavaScriptでは、staticキーワードを使ってクラス変数を定義します。インスタンス変数はthisを使って定義されます。

PythonとJavaScriptのクラスとオブジェクトの比較

以下の表で、PythonとJavaScriptのクラスとオブジェクトの違いを比較します。

特徴 Python JavaScript
クラス定義 classキーワードを使用 classキーワードを使用
コンストラクタ __init__メソッドを使用 constructorメソッドを使用
オブジェクト生成 newキーワードなし newキーワードを使用
クラス変数 クラス変数はクラス内で定義 staticキーワードを使用

ステップバイステップでクラスとオブジェクトを理解する

  1. Pythonでクラスを定義し、インスタンス変数とメソッドを持つシンプルなクラスを作成します。
  2. 次に、そのクラスを使ってオブジェクトを生成し、メソッドを呼び出します。
  3. クラス変数とインスタンス変数の違いを確認し、複数のオブジェクトでの挙動を比較します。

まとめ

この記事では、Pythonのクラスとオブジェクトについて、JavaScriptとの違いを中心に解説しました。Pythonではシンプルな構文でクラスとオブジェクトを扱うことができ、JavaScriptとは異なりnewキーワードを使いません。クラス変数やインスタンス変数の扱い方も理解し、Pythonでオブジェクト指向プログラミングを効率的に進めることができるようになるでしょう。

Amazonロゴ
   
ad.価格範囲を指定して商品を探せます。セールで助かる便利ツール
JavaScriptプログラマのための
スポンサーリンク
このページをメモ、または、シェア