Как сделать чтоб объект потомок не ссылался на объект родитель?
У меня проблема в том что созданный объект внутри класса ссылается на объект который создал его. Как исправить ?
import copy as cp
class a():
lis = []
def create_a(self):
obj = cp.copy(a())
print(obj.lis is self.lis) # True
b = a()
b.create_a()
Однако если:
a = []
b = []
a is b # false
Ответы (1 шт):
Автор решения: Serg Bocharov
→ Ссылка
Разница между is и ==
Оператор is проверяет, чтобы оба операнда ссылались на один объект (т. е. проверяет, идентичны ли они друг другу).
Оператор == сравнивает значения операндов и проверяет на идентичность.
Так что is используется для эквивалентности ссылок, а == — для эквивалентности значений. Поясняющий пример:
>>> [] == []
True
>>> [] is [] # These are two empty lists at two different memory locations.
False