classについて
まず、基本的なクラスの定義方法を見てみましょう。
# 初期化メソッド
def __init__(self, name, age):
self.name = name # インスタンス変数
self.age = age # インスタンス変数
# メソッド
def bark(self):
print(f”{self.name} is barking!”)
def get_older(self):
self.age += 1
def __str__(self):
return f”Dog(name={self.name}, age={self.age})”
クラスからオブジェクト(インスタンス)を作成するには、クラス名に引数を渡して呼び出します。
dog2 = Dog(“Max”, 5)
インスタンス変数とメソッドの使用
インスタンス変数やメソッドを使用して、オブジェクトの状態を変更したり動作を実行できます。
print(dog2.age) # 5
dog1.bark() # Buddy is barking!
dog2.bark() # Max is barking!
dog1.get_older()
print(dog1.age) # 4
クラスには特定の動作を制御するための特殊メソッドがあります。例えば、__init__は初期化メソッドで、__str__はオブジェクトの文字列表現を定義するために使用されます。
print(dog2) # Dog(name=Max, age=5)
クラスは継承を使って他のクラスの機能を引き継ぐことができます。例えば、Dogクラスを継承して新しいクラスを作成することができます。
Pythonには厳密なプライベート変数はありませんが、慣習的にアンダースコアを使ってプライベートと見なされる変数やメソッドを示します。
def __init__(self, name):
self.__name = name # プライベート変数
def __secret(self):
print(“This is a secret method”)
def reveal_secret(self):
self.__secret()
cat = Cat(“Whiskers”)
# cat.__name # AttributeError: ‘Cat’ object has no attribute ‘__name’
# cat.__secret() # AttributeError: ‘Cat’ object has no attribute ‘__secret’
cat.reveal_secret() # This is a secret method
クラス変数はクラス全体で共有される変数で、クラスメソッドはクラス自身に関する操作を行うメソッドです。
kingdom = ‘Animalia’ # クラス変数
@classmethod
def get_kingdom(cls):
return cls.kingdom
print(Animal.kingdom) # Animalia
print(Animal.get_kingdom()) # Animalia
dog = Dog(“Buddy”, 3)
print(dog.kingdom) # Animalia
2024年5月24日4:15 PM |カテゴリー:パソコン