Pythonでは、クラスのリストを初期化する方法があります。この記事では、その方法について詳しく説明します。
クラスのリストの初期化
Pythonのクラスでは、リストをクラス変数として初期化することができます。しかし、この方法には注意が必要です。なぜなら、リストをクラス変数として初期化すると、インスタンス間でリストが共有されてしまうからです。
例えば、以下のようなクラスを考えてみましょう。
class Sample:
    int_x:int = 0
    list_y:list = []
    def set_int(self, val):
        self.int_x = val
    def list_add(self, val):
        self.list_y.append(val)
このクラスでは、int_xとlist_yという2つのクラス変数があります。int_xは整数、list_yはリストを格納します。
しかし、このクラスの2つのインスタンスを作成し、一方のインスタンスでlist_yに値を追加すると、もう一方のインスタンスのlist_yも変更されてしまいます。
解決方法
この問題を解決するためには、コンストラクタ内でリストを初期化する方法があります。
以下に、修正後のクラスを示します。
class Sample:
    int_x:int = 0
    list_y:list
    def __init__(self):
        self.list_y = []
    def set_int(self, val):
        self.int_x = val
    def list_add(self, val):
        self.list_y.append(val)
この修正により、各インスタンスは独自のlist_yを持つようになり、一方のインスタンスでlist_yを変更しても、もう一方のインスタンスには影響が出ません。
以上が、Pythonでクラスのリストを初期化する方法とその注意点についての説明です。この情報が、Pythonのクラスとリストの理解に役立つことを願っています。.