@bqio
https://bqio.github.io/

Почему объект копируется, а не создаётся заново?

class Integer:
    pass

class String:
    pass

class Packet:
    id = Integer()
    name = String()

packet = Packet()
second_packet = Packet()

print(packet.id)
print(second_packet.id)


<__main__.Integer object at 0x000001C85B7D6F90>
<__main__.Integer object at 0x000001C85B7D6F90>


Почему ссылается на один и тот же адрес? И как сделать, чтобы каждый раз создавался новый инстанс?
  • Вопрос задан
  • 104 просмотра
Решения вопроса 1
Maksim_64
@Maksim_64
Data Analyst
1. Понять разницу между объектом класса, и объектом экземпляра класса.
2. Понять разницу между атрибутами класса и атрибутами экземпляра класса.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Wispik
@Wispik
Чтобы id и name были индивидуальные для каждого экземпляра Packet, надо их задавать в __init__
class Packet:
    def __init__(self) -> None: 
        self.id = Integer()
        self.name = String()
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы