python - 为什么这个脚本在输出中打印一个无关的 'none'

标签 python python-2.7

我编写了一个简单的脚本来帮助我更好地理解类的使用。它为游戏生成一个随机角色。我定义了对象,然后对该对象调用了一个函数来打印出生成的字符。在打印 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/

相关文章:

python - 如何压缩两个字符串?

python - numpy 获取行和列索引二维数组的所有组合

python - 使用 Python C API 时奇怪的内存行为

python - 拆分字符串(在空格或标点符号上)以获取所有数字

python - 在无向图中寻找最大团的 Bron-Kerbosch 算法

python - 使用 Flask 检查用户是否断开连接

App Engine 上的 Python 2.7,simplejson 与原生 json,谁更快?

python - if 语句未命中中的 continue 断点

python - 对一个字段使用 wtform 验证时, "Not a valid choice"是什么意思?

Python 二维数组赋值