0Pricing
Learn AI with Python · レッスン

マジックメソッド(__str__、__repr__ など)

オブジェクトの振る舞いをカスタマイズする Python の特殊メソッドを学びます。

「マジックメソッド(__str__、__repr__ など)」はCoddyKit上の無料Learn AI with Pythonレッスンです。 これはレッスン6/6です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはLearn AI with Python学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Learn AI with Pythonコースには全6レッスンが含まれています。

マジックメソッド入門

マジックメソッド入門

マジックメソッドは、ダンダーメソッド(「double underscore」の略)とも呼ばれ、特定の状況でオブジェクトがどのように動作するかを定義できるPythonの特殊なメソッドです。

このレッスンでは、__str__や__repr__など、よく使われるマジックメソッドの使用方法を学びます。

マジックメソッド(__str__、__repr__ など) — イラスト1

マジックメソッドとは

マジックメソッドとは

マジックメソッドは、オブジェクトに対して特定の操作が行われたときに自動的に呼び出される、Pythonであらかじめ定義されたメソッドです。__init__や__str__のように、二重アンダースコアで識別されます。

__init__メソッド

__init__メソッド

__init__メソッドは、新しいオブジェクトを初期化するコンストラクターです。オブジェクトが作成されると自動的に呼び出されます。

# Using the __init__ method to initialize attributes
class Person:
    def __init__(self, name, age):
        self.name = name  # Initialize the name attribute
        self.age = age  # Initialize the age attribute

# Creating an instance of Person
person = Person("Alice", 30)
print(person.name, person.age)  # Outputs: Alice 30

__str__メソッド

__str__メソッド

__str__メソッドは、print()が呼び出されたときのオブジェクトの文字列表現を定義します。

# Defining the __str__ method
class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age

    def __str__(self):
        return f"Name: {self.name}, Age: {self.age}"  # String representation

person = Person("Alice", 30)
print(person)  # Outputs: Name: Alice, Age: 30

__repr__メソッド

__repr__メソッド

__repr__メソッドは、オブジェクトの正式な文字列表現を提供し、デバッグによく使用されます。

# Defining the __repr__ method
class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age

    def __repr__(self):
        return f"Person('{self.name}', {self.age})"  # Debug-friendly representation

person = Person("Alice", 30)
print(repr(person))  # Outputs: Person('Alice', 30)

マジックメソッドによる演算子のオーバーロード

マジックメソッドによる演算子のオーバーロード

マジックメソッドを使って、+や==などの演算子の動作をカスタマイズできます。

# Overloading the + operator with __add__
class Point:
    def __init__(self, x, y):
        self.x = x
        self.y = y

    def __add__(self, other):
        return Point(self.x + other.x, self.y + other.y)  # Adding two points

    def __str__(self):
        return f"({self.x}, {self.y})"

point1 = Point(1, 2)
point2 = Point(3, 4)
result = point1 + point2  # Calls __add__
print(result)  # Outputs: (4, 6)

よく使われるマジックメソッド

よく使われるマジックメソッド

よく使われるマジックメソッドには、次のようなものがあります。

  • __len__:len()関数の動作を定義します。
  • __getitem__:リストや辞書のようにインデックスでアクセスできるようにします。
  • __eq__:==を使った等価比較をカスタマイズします。

__len__と__getitem__の使用

__len__と__getitem__の使用

__len__を使ってカスタムオブジェクトの長さを定義し、__getitem__を使ってインデックスでアクセスできるようにできます。

# Using __len__ and __getitem__ in a custom class
class CustomList:
    def __init__(self, items):
        self.items = items

    def __len__(self):
        return len(self.items)  # Defines the behavior of len()

    def __getitem__(self, index):
        return self.items[index]  # Enables indexing

custom_list = CustomList([1, 2, 3])
print(len(custom_list))  # Outputs: 3
print(custom_list[1])  # Outputs: 2

マジックメソッドでよくある間違い

マジックメソッドでよくある間違い

次のような間違いに注意してください。

  • 意図された動作に合わないマジックメソッドを定義する。
  • 必要のない演算子のオーバーロードを行う。
  • カスタムデータ型に必要なマジックメソッドの実装を忘れる。

学んだこと

学んだこと

このレッスンでは、次のことを学びました。

  • マジックメソッドとは何か、なぜ便利なのか。
  • __init__、__str__、__repr__など、よく使われるマジックメソッドの使用方法。
  • マジックメソッドを使って演算子をオーバーロードする方法。

よくできました。次のトピックに進みましょう。

マジックメソッド(__str__、__repr__ など) — イラスト11

よくある質問

「マジックメソッド(__str__、__repr__ など)」レッスンは無料ですか?

はい。「マジックメソッド(__str__、__repr__ など)」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Learn AI with Pythonコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Learn AI with Pythonコースには全6レッスンが含まれています。

「マジックメソッド(__str__、__repr__ など)」で何を学びますか?

オブジェクトの振る舞いをカスタマイズする Python の特殊メソッドを学びます。 ブラウザで直接実行するハンズオンコードでLearn AI with Pythonを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

Learn AI with Pythonを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのLearn AI with Pythonは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン6/6です。

「マジックメソッド(__str__、__repr__ など)」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このLearn AI with Pythonレッスンでコードを書いて実行できますか?

はい。すべてのLearn AI with Pythonレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. クラスとオブジェクト
  2. 属性とメソッド
  3. 継承
  4. ポリモーフィズム
  5. カプセル化と抽象化
  6. マジックメソッド(__str__、__repr__ など)
← Learn AI with Pythonに戻る