Pythonの結合クラスを定義するにはどうすればよいですか?

Python の合成は、オブジェクトを他のオブジェクトのプロパティとして組み合わせる方法です。継承とは異なり、合成を使用すると、オブジェクトのカプセル化を維持しながら、より柔軟なオブジェクトを作成できます。

 

このチュートリアルでは、Python で複合クラスを定義する方法を示し、いくつかのサンプル コードを提供します。

1.複合クラスを定義する

複合クラスを定義する最初のステップは、複合関係を決定することです。Personと の2 つのクラスがあるとしますJob誰もが仕事を持つことができますが、複数の人が仕事を共有することもできます。Jobこの関係は、クラスをクラスのプロパティとして構成して実装できますPerson

class Job:
    def __init__(self, title, salary):
        self.title = title
        self.salary = salary

class Person:
    def __init__(self, name, age, job=None):
        self.name = name
        self.age = age
        self.job = job

上記の例では、Personクラスのコンストラクターにjobという名前のオプションのパラメーターが含まれています。Personこのパラメータが渡されると、オブジェクトのプロパティとして保存されます。

2. 複合オブジェクトのプロパティにアクセスします。

構成関係を含むクラスを定義したので、それを使用してオブジェクトを作成し、そのプロパティにアクセスできます。以下に例を示します。

job = Job("Software Developer", 80000)
person = Person("Alice", 30, job)

print(person.name)
print(person.job.title)

この例では、まずオブジェクトを作成しJob、それをPersonオブジェクトのコンストラクターに渡します。次に、Personオブジェクトのプロパティnamejobそのプロパティのプロパティを出力しましたtitle

3. 複合オブジェクトのプロパティを変更する

複合オブジェクトのプロパティは、通常のオブジェクトのプロパティにアクセスするのと同じように変更できます。Person次に、オブジェクトのプロパティを変更する例を示しますjob

new_job = Job("Data Analyst", 60000)
person.job = new_job

print(person.job.title)

この例では、最初に新しいJobオブジェクトを作成し、それをPersonオブジェクトのjobプロパティに割り当てました。Person最後に、オブジェクトのjobプロパティを出力して、title変更が成功したことを確認しました。

4. まとめ

このチュートリアルでは、Python を使用して複合クラスを定義する方法を示します。合成は、オブジェクトを他のオブジェクトのプロパティとして結合する方法であり、オブジェクトのカプセル化を維持しながら、より柔軟なオブジェクトを作成できるようになります。まず 2 つのクラスを定義し、次にそのクラスをPersonclass 内の属性として使用しますJobまた、複合オブジェクトのプロパティにアクセスして変更する方法も示しました。

このチュートリアルが Python の複合クラスについて学び、独自のコードで複合クラスを使用するのに役立つことを願っています。

おすすめ

転載: blog.csdn.net/m0_72605743/article/details/129693806