Попробую это сделать. Когда объект изменяемого списка определен как параметр, он передается классам.
class thing:
def __init__(self, stuff=[]):
self.stuff = stuff
for i in range(10):
obj = thing()
print(obj)
obj.stuff.append(1)
print(obj.stuff)
mylist.append(obj)
print(mylist)
<<strong> main .thing объект в 0x10ff4b5f8> [1] [<<strong> main объект .thing в 0x10ff4b5f8>]
<<strong> main объект .thing в 0x10ff4b978> [1, 1] [<<strong> main объект .thing в 0x10ff4b5f8>, <<strong> main объект .thing в 0x10ff4b978>]
<<strong> main объект .thing в 0x10ff4b4e0> [1, 1, 1] [<<strong> main объект .thing в 0x10ff4b5f8>, <<strong> main .thing объект в 0x10ff4b978>, <<strong> main объект .thing в 0x10ff4b4e0>]
<<strong> main объект .thing в 0x10ff4b4a8> [1, 1, 1, 1] [<<strong> main объект .thing в 0x10ff4b5f8>, <<strong> main .thing объект в 0x10ff4b978>, <<strong> main .thing объект в 0x10ff4b4e0>, <<strong> main .thing объект в 0x10ff4b4a8>]
<<strong> main объект .thing в 0x10ff4b5c0> [1, 1, 1, 1, 1] [<<strong> main объект .thing в 0x10ff4b 5f8>, <<strong> main .thing объект в 0x10ff4b978>, <<strong> main .thing объект в 0x10ff4b4e0>, <<strong> main .thing объект в 0x10ff4b4a8>, <<strong> main объект .thing в 0x10ff4b5c0>]
<<strong> main объект .thing в 0x10ff4b588> [1, 1, 1, 1, 1, 1] [<<strong> main .thing объект в 0x10ff4b5f8>, <<strong> main .thing объект в 0x10ff4b978>, <<strong> main .thing объект в 0x10ff4b4e0>, <<strong> main .thing объект в 0x10ff4b4a8>, <<strong> main .thing объект в 0x10ff4b5c0>, <<strong> main .thing объект в 0x10ff4b588>]
<<strong> main .thing объект в 0x10ff4b6d8> [1, 1, 1, 1, 1, 1, 1] [<<strong> main .thing объект в 0x10ff4b5f8>, <<strong> main .thing объект в 0x10ff4b978>, <<strong> main .thing объект в 0x10ff4b4e0>, <<strong> main .thing объект в 0x10ff4b4a8>, <<strong> main .thing объект в 0x10ff4b5c0>, <<strong> основной объект .thing в 0x10ff4b588>, <<strong> main объект .thing в 0x10ff4b6d8>]
<* 108 8 * main </strong> объект .thing в 0x10ff4b710> [1, 1, 1, 1, 1, 1, 1, 1] [<<strong> main объект .thing в 0x10ff4b5f8>, <<strong> main объект .thing в 0x10ff4b978>, <<strong> main объект .thing в 0x10ff4b4e0>, <<strong> main .thing объект в 0x10ff4b4a8>, <<strong> main .thing объект в 0x10ff4b5c0>, <<strong> main .thing объект в 0x10ff4b588>, <<strong> main объект .thing в 0x10ff4b6d8>, <<strong> main .thing объект в 0x10ff4b710>]
<<strong> main объект .thing по адресу 0x10ff4b668> [1, 1, 1, 1, 1, 1, 1, 1, 1] [<<strong> main .thing объект в 0x10ff4b5f8>, <<strong> main объект .thing в 0x10ff4b978>, <<strong> main объект .thing в 0x10ff4b4e0>, <<strong> main .thing объект в 0x10ff4b4a8>, <<strong> main .thing объект в 0x10ff4b5c0>, <<strong> main .thing объект в 0x10ff4b588>, <<strong> main .thing объект в 0x10ff4b6d8>, <<strong> main объект .thing в 0x10ff4b710>, <<strong> main объект .thing в 0x10ff4b668>]
<<strong> main объект .thing в 0x10ff4b748> [1, 1, 1, 1, 1, 1, 1, 1, 1, 1] [<<strong> main объект .thing в 0x10ff4b5f8>, <<strong> main .thing объект в 0x10ff4b978>, <<strong> main .thing объект в 0x10ff4b4e0>, <<strong> main .thing объект в 0x10ff4b4a8>, <<strong> main .thing объект at 0x10ff4b5c0>, <<strong> main объект .thing в 0x10ff4b588>, <<strong> main объект .thing в 0x10ff4b6d8>, <<strong> main .thing объект в 0x10ff4b710>, < main .thing объект в 0x10ff4b668>, <<strong> main .thing объект в 0x10ff4b748>]
При создании списка внутри функционального блока он каждый раз создает новый .
Вот результат при использовании класса ниже.
class Thing:
__ init__(self, stuff):
if stuff:
self.stuff = stuff
else:
self.stuff = []
for i in range(10):
obj = thing()
print(obj)
obj.stuff.append(1)
print(obj.stuff)
mylist.append(obj)
print(mylist)
Выход
<<strong> main .thing объект at 0x10ff4b518> [1] [<<strong> main .thing объект в 0x10ff4b518>]
<<strong> main .thing объект в 0x10ff4b4e0> [1] [<<strong> main .thing объект по адресу 0x10ff4b518>, <<strong> main . объект thing в 0x10ff4b4e0>]
<<strong> main .thing объект в 0x10ff4b6d8> [1] [<<strong> main .thing объект в 0x10ff4b518>, <<strong> main объект .thing в 0x10ff4b4e0>, <<strong> main объект .thing в 0x10ff4b6d8>]
<<strong> main объект .thing в 0x10ff4b550> [1] [< main объект .thing в 0x10ff4b518>, <<strong> main объект .thing в 0x10ff4b4e0>, <<strong> main .thing объект в 0x10ff4b6d8>, <<strong> main объект .thing в 0x10ff4b550>]
<<strong> main .thing объект в 0x10ff4b7b8> [1] [<<strong> main .thing объект в 0x10ff4b518>, <<strong> основной объект .thing в 0x10ff4b4e0>, <<strong> main объект .thing в 0x10ff4b6d8>, <<strong> main объект .thing в 0x10ff4b550>, <<strong> main .thing объект в 0x10ff4b7b8>]
<<strong> main .thing объект в 0x10ff4b7f0> [1] [<<strong> main .thing объект в 0x10ff4b518>, <<strong> main объект .thing в 0x10ff4b4e0>, <<strong> main объект .thing в 0x10ff4b 6d8>, <<strong> main объект .thing в 0x10ff4b550>, <<strong> main .thing объект в 0x10ff4b7b8>, <<strong> main объект .thing в 0x10ff4b7f0>]
<<strong> main объект .thing в 0x10ff4b668> [1] [<<strong> main .thing объект в 0x10ff4b518>, <<strong> main объект .thing в 0x10ff4b4e0 >, <<strong> main .thing объект в 0x10ff4b6d8>, <<strong> main .thing объект в 0x10ff4b550>, <<strong> main .thing объект в 0x10ff4b7b8>, <<strong> main .thing объект в 0x10ff4b7f0>, <<strong> main .thing объект в 0x10ff4b668>]
<<strong> main .thing объект в 0x10ff4b6a0> [1] [<<strong> main .thing объект в 0x10ff4b518>, <<strong> main .thing объект в 0x10ff4b4e0>, <<strong> main .thing объект в 0x10ff4b6d8>, <<strong> main .thing объект в 0x10ff4b550>, <<strong> main .thing объект в 0x10ff4b7b8>, <<strong> main .thing объект в 0x10ff4b7f0>, <<strong> main . объект thing в 0x10ff4b668>, <<strong> main .thing объект в 0x10ff4b6a0>] * 12 65 *
<<strong> main объект .thing в 0x10ff4b748> [1] [<<strong> main .thing объект в 0x10ff4b518>, <<strong> main .thing объект в 0x10ff4b4e0>, <<strong> main объект .thing в 0x10ff4b6d8>, <<strong> main объект .thing в 0x10ff4b550>, <<strong> main .thing объект в 0x10ff4b7b8>, <<strong> main объект .thing в 0x10ff4b7f0>, <<strong> main .thing объект в 0x10ff4b668>, <<strong> main .thing объект в 0x10ff4b6a0>, <<strong> main .thing объект в 0x10ff4b748>]
<<strong> main .thing объект в 0x10ff4b828> [1] [<<strong> main .thing объект в 0x10ff4b518>, <<strong> main .thing объект в 0x10ff4b4e0>, <<strong> main .thing объект в 0x10ff4b6d8>, <<strong> main .thing объект в 0x10ff4b550>, <<strong> main .thing объект в 0x10ff4b7b8>, <<strong> main .thing объект в 0x10ff4b7f0>, <<strong> main .thing объект в 0x10ff4b668>, <<strong> main объект .thing в 0x10ff4b6a0 >, <<strong> main объект .thing по адресу 0x10ff4b748>, <<strong> mai n объект .thing по адресу 0x10ff4b828>]