2016-04-14 25 views
0

Oldukça büyük bir program üzerinde çalışıyorum ve garip bir problemle karşılaştım. bu kod parçacığı İşte:Bu yöntem neden bir dize döndürmüyor?

newColor = Player.changeColor 
a = [newColor] 

bu (başka bir sınıfta bir yöntemle denir) (basitleştirilmiş versiyonu) Oyuncu nesnesinde yöntemdir:

colors = ["red", "blue", "yellow"] 
chosenColor = random.choice(colors) 
    return chosenColor 

Ama ne zaman yazdırmak değişkeni, bu i (yerine bir rengin dize) elde ediyoruz:

[<bound method Player.changeColor of <__main__.Player object at 0x0241B510>>] 
(yerine bu rastgele renk bir dize yazdırmak böylece)

nasıl düzeltebilirim ?

+0

Ben bütün kod size yardımcı olacağını sanmıyorum - bir değil yaklaşık 500 + -lines kod -so-popüler yerel kart oyunu (Taki), bu yüzden vermedim ve muhtemelen bunu istememelisiniz. –

cevap

3

Bir şeyleri yürütmek ve döndürmek için işlevleri çağırmanız gerekir.

newColor = Player.changeColor() 

Veya changeColor Oyuncu sınıfın statik yöntem değilse,

newColor = Player().changeColor() 
+0

Doğru, unuttum! Çok teşekkür ederim! (site yakında bu cevabı onaylamama izin vermiyor, bu yüzden başkalarının bana cevap vermeden zamanlarını boşa harcamasına engel olacağım) –

+2

@GalA. Muhtemelen sadece soruyu silmelisiniz. Bunun gibi saçma hatalar hakkındaki sorular siteye yararlı değildir. – Barmar

İlgili konular