2016-04-14 168 views
0

我正在研究一個相當大的程序,並且遇到了一個奇怪的問題。 這是一個代碼片段:爲什麼這個方法返回一個字符串?

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代碼有關不 - 當地流行的本地紙牌遊戲(塔基),所以我沒有給它,你可能不應該要求它。 –

回答

3

您需要調用函數才能讓它們執行並返回一些內容。

newColor = Player.changeColor() 

或者,如果changeColor是不是播放器類的靜態方法,

newColor = Player().changeColor() 
+0

對,我忘了!非常感謝你! (該網站不讓我批准這個答案很快,所以我評論,以防止他人浪費他們的時間回答我) –

+2

@GalA。你應該刪掉問題。有關這種愚蠢的錯誤的問題對網站沒有用處。 – Barmar

相關問題