Pythonのprint()関数を使用してクラスのインスタンスを出力する方法
Pythonでは、print()関数を使用してクラスのインスタンスを出力することができます。クラスのインスタンスをprint()関数に渡すと、そのインスタンスの文字列表現が表示されます。クラスで\_\_str\_\_メソッドを定義していない場合は、デフォルトの文字列表現が表示されます。
サンプルコード1: \_\_str\_\_メソッドを使用した場合
class Car: def __init__(self, brand, model): self.brand = brand self.model = model def __str__(self): return f"{self.brand} {self.model}" car1 = Car("Toyota", "Corolla") print(car1)
上記のコードでは、Carクラスで\_\_str\_\_メソッドを定義しています。このメソッドはクラスのインスタンスを文字列に変換するために使用されます。print()関数でcar1インスタンスを出力すると、「Toyota Corolla」と表示されます。
サンプルコード2: デフォルトの文字列表現を使用した場合
class Book: def __init__(self, title, author): self.title = title self.author = author book1 = Book("Python Programming", "Guido van Rossum") print(book1)
上記のコードでは、Bookクラスで\_\_str\_\_メソッドを定義していないため、デフォルトの文字列表現が使用されます。print()関数でbook1インスタンスを出力すると、「<__main__.Book object at 0x7f8d0f4bf3a0>」のような表示がされます。
サンプルコード3: インスタンス変数を直接出力する場合
class Person: def __init__(self, name, age): self.name = name self.age = age person1 = Person("Alice", 30) print(person1.name, person1.age)
こちらのコードでは、インスタンス変数を直接print()関数で出力しています。インスタンス変数の値がそのまま表示されます。「Alice 30」という結果が表示されます。
print()関数を使用してクラスのインスタンスを出力するには、そのクラスに\_\_str\_\_()メソッドを実装する必要があります。このメソッドは、クラスのインスタンスを文字列に変換するために使用されます。例えば、以下のようにクラスを定義し、\_\_str\_\_()メソッドを追加することで、print()関数でインスタンスを出力することができます。
“`python
class MyClass:
def __init__(self, value):
self.value = valuedef __str__(self):
return f”MyClass instance with value: {self.value}”instance = MyClass(42)
print(instance)
“`上記の例では、MyClassクラスに\_\_str\_\_()メソッドが実装されており、インスタンスを文字列に変換する際に”MyClass instance with value: {self.value}”という形式で出力されます。print()関数を使用することで、この文字列がコンソールに表示されます。