こんにちは、私は属性としてリストを持つクラスを持っています。私はこのクラスをインスタンス化するときに、このインスタンスのこのリストを並べ替える必要があります。例:Pythonは初期化時にクラス属性リストを並べ替える
class A(object):
my_list = [1,2,3,4,5]
def __init__(self, first):
self.reorder_list(first)
def reorder_list(self, first):
self.my_list.insert(
0,
self.my_list.pop(
self.my_list.index(first)
)
)
これは、次の手順を実行する必要があります
a = A(3)
a.my_list
[Out]: 3,1,2,4,5
b = A(4)
b.my_list
[Out]: 4,1,2,3,5
など
これが動作しているようです....しかし、常にではない...結果のように一貫性がありません。私はこれを好きなとき:
def __init__(self, first):
self.my_list = self.reorder_list(first)
def reorder_list(self, first):
my_copy = copy.copy(self.my_list)
... do reordering on my_copy ...
return my_copy
それは一貫して動作します。
私の最初のコードはそれを行う方法ではないと誰かが私に説明することができますし、それを行う2番目の方法(コピーし、self.my_listをreassingする)はこれを行う正しい方法ですか?
あなたの例では、実行可能ではありませんあなたはreorder_listで自己パラメータを見逃したのか? – Jul3k
あなたは正しいです、私はそれを追加しました。 – RvL