为什么这个方法返回一个字符串?
问题描述:
我正在研究一个相当大的程序,并且遇到了一个奇怪的问题。 这是一个代码片段:为什么这个方法返回一个字符串?
newColor = Player.changeColor
a = [newColor]
这是(的简化版本)在Player对象的方法(它是由一种称为另一个类):
colors = ["red", "blue", "yellow"]
chosenColor = random.choice(colors)
return chosenColor
但是当我打印变量一,这是我所得到的(而不是颜色的字符串):
[<bound method Player.changeColor of <__main__.Player object at 0x0241B510>>]
如何解决它(这样它会打印随机颜色,而不是这个的字符串)?
答
您需要调用函数才能让它们执行并返回一些内容。
newColor = Player.changeColor()
或者,如果changeColor
是不是播放器类的静态方法,
newColor = Player().changeColor()
+0
对,我忘了!非常感谢你! (该网站不让我批准这个答案很快,所以我评论,以防止他人浪费他们的时间回答我) –
+2
@GalA。你应该删掉问题。有关这种愚蠢的错误的问题对网站没有用处。 – Barmar
我不认为整个代码会帮助你 - 这是一个500个+ -lines代码有关不 - 当地流行的本地纸牌游戏(塔基),所以我没有给它,你可能不应该要求它。 –