2013-10-16 27 views
0

我有一個Python類這樣:鑑於屬性對類實例的一個子集,增加一個隨機

class Zoo: 
    pandas = 0 
    tunas = 0 
    cows = 0 

    #...other attributes and methods below 

因爲我的控制範圍之外的神聖力量,我不能修改類以任何方式(是的,我知道動物的字典在這裏會更好)。我想編寫代碼,這將在類的實例操作,並且由1

在本質上增加之中上面所示的3的隨機屬性,我想寫這樣的事:

import random 
z = Zoo() 
attributes = [z.pandas, z.tunas, z.cows] 
random.choice(attributes) += 1 

當然,這是行不通的。如何去做這件事?

+0

顯然「金槍魚」真的*是*可接受的金槍魚多元化。你懂得越多。 – roippi

+0

@roippi:是的,「tuni」和「tunae」都不正確。 –

回答

3
attributes = ['pandas', 'tunas', 'cows'] 
choice = random.choice(attributes) 
setattr(z, choice, getattr(z, choice) + 1) 
+0

哈哈,是的,我總是忘記setattr。謝謝! – bitgarden

相關問題