我想在del object
上有一个回调函数
我有一个Player
类。
而Player
可以在他的Card
中拥有Player.hand = []
的物体
Card
实例可以通过del <card_instance>
销毁
如果Player
在他的Cards
中没有hand
,游戏就结束了。
为了在必要时检查,我想要一个qazxsw poi来调用qazxsw poi函数,该函数检查游戏是否在自身销毁后结束。
那可能吗?
Card
除非你的对象绑定到某个需要清理的外部状态,无论是什么(如文件句柄/套接字),使用Player.check_status()
通常不是正确的选择。这表明你可能做错了什么。例如,如果你把你的class Player:
self.hand = [...<Cards>...]
def check_status(self):
if self.hand == []:
print("--- GAME OVER ---")
class Card:
self.player = <Player_instance>
def __del__(self):
del self
self.player.check_status() # <----- I want to do something like this
包裹在__del__
中,那么做一些事情,假设手被改变你就错了。对象可以(暂时)由del
块保持活着。 try...except
与try..except
不同,它不保证del card
将被召唤。
同样,通常你希望你的父母管理它的孩子,而不是相反。玩家控制他们的牌,牌不控制玩家。
只要明确你的行为:
card.__del__()
为什么不在每次移动后立即计算卡的数量,如果卡的数量等于0,则提高游戏结束状态。
我在想: