为什么这个方法返回一个字符串?

为什么这个方法返回一个字符串?

问题描述:

我正在研究一个相当大的程序,并且遇到了一个奇怪的问题。 这是一个代码片段:为什么这个方法返回一个字符串?

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>>] 

如何解决它(这样它会打印随机颜色,而不是这个的字符串)?

+0

我不认为整个代码会帮助你 - 这是一个500个+ -lines代码有关不 - 当地流行的本地纸牌游戏(塔基),所以我没有给它,你可能不应该要求它。 –

您需要调用函数才能让它们执行并返回一些内容。

newColor = Player.changeColor() 

或者,如果changeColor是不是播放器类的静态方法,

newColor = Player().changeColor() 
+0

对,我忘了!非常感谢你! (该网站不让我批准这个答案很快,所以我评论,以防止他人浪费他们的时间回答我) –

+2

@GalA。你应该删掉问题。有关这种愚蠢的错误的问题对网站没有用处。 – Barmar