我要在del object
上使用回调函数
我有一个Player
班。
Player
的{{1}}中可以有Card
个对象
Player.hand = []
实例可以通过Card
如果del <card_instance>
的{{1}}中没有Player
,则游戏结束。
要仅在必要时检查,我希望Cards
调用hand
函数,以检查游戏在其自身销毁后是否结束。
有可能吗?
Card
答案 0 :(得分:1)
除非您的对象与任何需要清除的外部状态相关联(例如文件句柄/套接字),否则使用__del__
通常不是正确的选择。这表明您可能做错了什么。例如,如果将del
包裹在try...except
中,然后做其他事情(假设手已经换了),那就错了。 try..except
块可以使对象(暂时)保持活动状态。 del card
与card.__del__()
是不是相同的事物,它不能保证__del__
会被调用。
通常,您通常希望您的父母来管理孩子,而不是相反。玩家控制自己的牌,纸牌不控制玩家。
只需对您的动作明确即可:
class Player:
def __init__(self):
self.hand = []
def add_card(self, card):
self.hand.append(card)
def remove_card(self, card):
self.hand.remove(card)
if not self.hand:
print('--- GAME OVER ---')
答案 1 :(得分:0)
为什么每次移动后不立即计算纸牌数量,如果纸牌数量等于0,则提高游戏结束状态。
我在想: