我想知道是否有办法将python中的对象名打印为字符串。例如,我想说ENEMY1还有2 hp或者ENEMY2还有4 hp。有办法吗?\
class badguy:
def __init__(self):
self.hp = 4
def attack(self):
print("hit")
self.hp -= 1
def still_alive(self):
if self.hp <=0:
print("enemy destroyed")
else :
print (str(self.hp) + " hp left")
# creating objects
enemy1 = badguy()
enemy2 = badguy()
enemy1.attack()
enemy1.attack()
enemy1.still_alive()
enemy2.still_alive()
你得先给他们起名字。E、 g
我在这里发布了一个完整的解决方案:
https://stackoverflow.com/a/49331683/7386061
它的工作没有参数。例如,你可以这样做:
更好的设计原则是不依赖对象的特定名称,如下所示:
这会导致大量带有赋值绑定和引用的问题,最重要的是不允许您根据用户或程序的选择命名对象。
相反,将一个名为
self._name
(9.6 Classes - Private Variables)或self.name
的实例变量添加到类中,如果您希望允许在类的作用域(中)之外的访问,可以将其命名为任何。这不仅是一个更加面向对象的设计,而且现在您可以实现像__hash__
这样的方法,以便能够基于一个名称创建一个散列,例如使用一个对象作为键(有更多的理由说明这种设计选择更好!)。样本输出:
相关问题 更多 >
编程相关推荐