Форум сайта python.su
Привет.
Изучаю книгу Доусона. Делаю игру в которой нужно ловить пиццу сковородой.
“Сумасшедший повар” через определённые промежутки времени создаёт спрайты в виде пиццы которые падают вниз.
Но создаёт он спрайты пиццы с одним и тем же именем!
Я думал, что если я создам объект класса с тем же именем, то старый объект будет уничтожен, а новый появится. А здесь и новый объект появляется и старый остаётся.
Как это может быть?
Кто читал книгу - подскажите!
Спасибо
Офлайн
panama555Ну не видя вашего кода, трудно чточто сказать(а искать и читать книгу Доусона, сами понимаете..), нов пайтоне у каждого объекта есть счетчик, который показывает сколько переменных на него ссылаються, когда счетчик становиться равный 0, сборщик мусора его удаляет. Соответсвенно если старый обьект остаеться значит гдето на него ссылаеться какаято переменная(элемент списка/значение словаряи тд…), но повторюсь не видя кода ничего конкретного сказать нельзя.
Я думал, что если я создам объект класса с тем же именем, то старый объект будет уничтожен, а новый появится. А здесь и новый объект появляется и старый остаётся.Как это может быть?
[code python][/code]
Офлайн
Прикладываю файл из книги.
в этом месте:
def check_drop(self): """ Decrease countdown or drop pizza and reset countdown. """ if self.time_til_drop > 0: self.time_til_drop -= 1 else: new_pizza = Pizza(x = self.x) games.screen.add(new_pizza) # set buffer to approx 30% of pizza height, regardless of pizza speed self.time_til_drop = int(new_pizza.height * 1.3 / Pizza.speed) + 1
Отредактировано panama555 (Ноя. 8, 2019 22:23:06)
Прикреплённый файлы:
pizza_panic.py (4,2 KБ)
Офлайн
panama555
games.screen.add(new_pizza)
Офлайн