我编写了一个简单的脚本来帮助我更好地理解类的使用。它为游戏生成一个随机角色。我定义了对象,然后对该对象调用了一个函数来打印出生成的字符。在打印 block 的末尾,有一个无关的“无”,我不确定它来自哪里,也不确定它为什么被打印。这是示例输出:
ted
Strength : 20
Dexterity : 17
Hit Points: 100
Aura : 100
Weapon :
Spell :
Item :
Element :
--------------------
None
在我的代码中,player.stats()
的最后一行是 print "-"* 20
,它显示在“None”的正上方。下面是定义对象的代码:
class Player(object):
def __init__(self, name):
self.name = name
self.strength = randint(15, 20)
self.dexterity = randint(15, 20)
self.hit_points = 100
self.aura = 100
self.weapon = " "
self.spell = " "
self.item = " "
self.element = " "
def stats(self):
print "\n"
print self.name
print "Strength : %d" % self.strength
print "Dexterity : %d" % self.dexterity
print "Hit Points: %d" % self.hit_points
print "Aura : %d" % self.aura
print "Weapon : %s" % self.weapon
print "Spell : %s" % self.spell
print "Item : %s" % self.item
print "Element : %s" % self.element
print "-" * 20
然后使用这个实例化对象:
name = raw_input("Name your character: ")
player = Player(name)
print player.stats()
完整代码可阅读here at Pastebin如有必要。
最佳答案
print player.stats()
是罪魁祸首。 player.stats() == None
你只需要:
player.stats()
最好将函数命名为 player.printStats()
。
另一种选择是让它返回一个字符串:
def stats(self):
return '\n'.join([
self.name
"Strength : %d" % self.strength,
"Dexterity : %d" % self.dexterity,
"Hit Points: %d" % self.hit_points,
"Aura : %d" % self.aura,
"Weapon : %s" % self.weapon,
"Spell : %s" % self.spell,
"Item : %s" % self.item,
"Element : %s" % self.element,
"-" * 20
])
然后 print player.stats()
会按预期运行
关于python - 为什么这个脚本在输出中打印一个无关的 'none',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13325458/