
【第12回】Pythonのオブジェクト指向の基本(クラスとインスタンス)
Pythonはオブジェクト指向プログラミング(OOP)に対応しており、クラスとインスタンスを使うことで、より効率的にプログラムを構築できます。
この記事では、Ubuntu環境でviを使いながら、Pythonのクラスとインスタンスの基本について解説します。
1、クラスの定義
クラスは、オブジェクトの設計図のようなものです。class キーワードを使って定義します。
class Dog:
def bark(self):
print("ワンワン!")
このクラスには bark() というメソッドが定義されています。
2、インスタンスの作成
クラスを元にオブジェクトを作成することを「インスタンス化」と言います。
my_dog = Dog()
my_dog.bark() # ワンワン!を出力
3、コンストラクタ(__init__メソッド)
オブジェクトを作成するときに、初期値を設定できる特別なメソッド __init__() を定義できます。
class Dog:
def __init__(self, name):
self.name = name
def bark(self):
print(f"{self.name}がワンワン!と鳴きました。")
my_dog = Dog("ポチ")
my_dog.bark() # ポチがワンワン!と鳴きました。
4、属性とメソッド
クラスには「属性(変数)とメソッド(関数)」を定義できます。
class Car:
def __init__(self, brand, speed):
self.brand = brand
self.speed = speed
def accelerate(self):
self.speed += 10
print(f"{self.brand}の速度が{self.speed}km/hになりました。")
my_car = Car("Toyota", 50)
my_car.accelerate() # Toyotaの速度が60km/hになりました。
5、クラスの継承
クラスを継承すると、既存のクラスを元に新しいクラスを作成できます。
class Animal:
def speak(self):
print("何かを話します。")
class Cat(Animal):
def speak(self):
print("ニャー!")
my_cat = Cat()
my_cat.speak() # ニャー!を出力
まとめ
クラスは class を使って定義できます。
インスタンスを作成すると、そのクラスのオブジェクトを利用できます。
__init__() メソッドを使うと、インスタンスの初期値を設定できます。
クラスの属性は self.変数名 で定義し、メソッドで操作できます。
継承を使うと、既存のクラスを拡張できます。
Ubuntu環境ではviエディタを使ってPythonコードを編集し、python3 ファイル名で実行できます。
クラスとインスタンスを理解し、Pythonのオブジェクト指向プログラミングを活用しましょう!