我在尝试在类功能中打印播放器的统计数据时遇到了麻烦。当我运行它时,它不会打印。
#include <vector>
//..
int a, b, c;
//..assume a, b, and c have values
std::vector<int> array(a*b*c);
//... call the function
OMat3(a, b, c, array.data());
答案 0 :(得分:4)
如果您要打印统计信息,则必须打印统计信息。
def printStats(self):
print("Health: " + ...)
你还需要实际调用函数(注意尾部括号):
link.printStats()
稍微更加pythonic的解决方案是修改打印对象时打印的内容。您可以通过定义方法__str__
来实现。然后,只需将对象传递给print命令。
class Player(object):
def __init__(self, name, hp, dmg, lvl, inventory, speed):
self.name = name
self.hp = hp
self.dmg = dmg
self.lvl = lvl
self.inventory = inventory
self.speed = speed
def __str__(self):
return "Health: %s Attack Damage: %s Level: %s Speed: %s" % (self.hp, self.dmg, self.lvl, self.speed)
link = Player("Link", 10, 3, 1, {}, 3)
print(link)
答案 1 :(得分:0)
取决于你在哪个版本的python中运行
for python 2.7
print link.printStats()
for python 3.x
print(link.printStats())
答案 2 :(得分:0)
相反,您可以使用__repr__(self)
function:
class Player(object):
def __init__(self, name, hp, dmg, lvl, inventory, speed):
self.name = name
self.hp = hp
self.dmg = dmg
self.lvl = lvl
self.inventory = inventory
self.speed = speed
def __repr__(self):
return("Health: " + self.hp + ", Attack Damage: " + self.dmg + ", Level: " + self.lvl + ", Speed: " + self.speed)
link = Player("Link", 10, 3, 1, {}, 3)
print link
答案 3 :(得分:0)
当你在IDLE或REPL中运行程序时,python会自动打印函数的返回值。所以替换这个:
def printStats(self):
return("Health: " + ...)
用这个:
def printStats(self):
print("Health: " + ...)
您也无法实际调用该函数(即运行)。
link.printStats
简单地说&#34;好的,从链接中找到printStats函数。&#34;
你没有运行它,你只是检索它。
请改为尝试:
link.printStats()
BTW,python惯例说你不应该使用CamelCase字体来实现功能。请改用name_with_underscores。