Ошибка в переопределении метода del
Есть код :
free_pc = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
daily_cash = 0
class Player:
price = 100 # за час
def __init__(self, nick, pc, hours):
self.nick = nick
self.pc = pc
self.hours = hours
self.cash = self.hours * Player.price
global free_pc
free_pc.remove(self.pc) # удаляем пк из списка доступных
global daily_cash
daily_cash += self.cash
def __len__(self):
return self.hours
def __str__(self):
return f'user {self.nick} on {self.pc} pc played {self.hours} hours'
def __del__(self):
print(f'{self.pc} is free now')
global free_pc
free_pc.append(self.pc)
p1 = Player('qwe', 4, 5)
p2 = Player('asd', 2, 8)
p3 = Player('zxc', 1, 1)
print('свободные компы: ', *free_pc)
print(daily_cash)
print(p3)
del (p3)
print(free_pc)
пишет:
свободные компы: 3 5 6 7 8 9 10
1400
user zxc on 1 pc played 1 hours
1 is free now
[3, 5, 6, 7, 8, 9, 10, 1]
4 is free now
2 is free now
почему при удалении p3 выводятся на печать те слова которых не должно там быть?я же не удалял другие объекты.Даже везде глобал поставил,все равно не то печатает, вот тут можно посмотреть https://ideone.com/H25kTp