Pythonでクラスのインスタンスを作成
この記事では、Pythonでクラスのインスタンスを作成する方法について説明します。クラス定義、コンストラクタ、インスタンス変数、そしてインスタンスメソッドの使い方を例を交えて解説します。
目次
クラスの定義
クラスは、オブジェクトを作成するための設計図です。`class`キーワードを使用して定義します。
class Dog:
pass
これは、`Dog`という名前の空のクラスです。`pass`は、何も実行しないステートメントで、クラス定義を空にするために使用されます。
コンストラクタ(__init__)
コンストラクタは、クラスのインスタンスが作成されるときに自動的に呼び出される特別なメソッドです。`__init__`という名前で定義します。
class Dog:
def __init__(self, name, age):
self.name = name
self.age = age
この例では、`Dog`クラスのコンストラクタは、`name`と`age`という2つの引数を受け取ります。`self`は、インスタンス自身を表す特別な引数です。`self.name`と`self.age`は、インスタンス変数です。
インスタンス変数
インスタンス変数は、各インスタンスに固有のデータです。コンストラクタで初期化されます。
class Dog:
def __init__(self, name, age):
self.name = name
self.age = age
dog1 = Dog("Buddy", 3)
print(dog1.name) # 出力: Buddy
print(dog1.age) # 出力: 3
`dog1`は`Dog`クラスのインスタンスです。`dog1.name`と`dog1.age`は、`dog1`のインスタンス変数にアクセスします。
インスタンスメソッド
インスタンスメソッドは、インスタンスのデータに作用するメソッドです。`self`を引数として受け取ります。
class Dog:
def __init__(self, name, age):
self.name = name
self.age = age
def bark(self):
print("Woof!")
dog1 = Dog("Buddy", 3)
dog1.bark() # 出力: Woof!
インスタンスの作成と使用方法
クラスのインスタンスを作成するには、クラス名を呼び出します。
class Dog:
def __init__(self, name, age):
self.name = name
self.age = age
dog1 = Dog("Buddy", 3)
dog2 = Dog("Max", 5)
print(dog1.name, dog1.age) # 出力: Buddy 3
print(dog2.name, dog2.age) # 出力: Max 5
サンプルコード
簡単な例です。
class Dog:
def __init__(self, name, age):
self.name = name
self.age = age
def description(self):
return f"{self.name} is {self.age} years old."
dog = Dog("Fido", 4)
print(dog.description()) # 出力: Fido is 4 years old.
このコードは、Dogクラスを定義し、インスタンスを作成し、インスタンスメソッドを使用して、犬の名前と年齢を出力します。
関連記事
- Pythonでクラスを定義(class)
- Pythonでコンストラクタを定義(__init__)
- Pythonでインスタンス変数・クラス変数を使う
- Pythonで継承を使う
- Pythonでポリモーフィズムを実装
- Pythonでメソッドを定義
- Pythonで静的メソッド・クラスメソッドを使う(@staticmethod, @classmethod)
- Pythonで特殊メソッドを使う(__str__, __repr__, __add__ など)
- Pythonでプロパティを使う(@property, @setter, @deleter)
- Pythonでデータクラスを使う(dataclasses.dataclass, Python 3.7以降)