2013-09-30 152 views
1

我需要此問題的幫助:我創建了一個其參考號是隨機數的類。問題是這樣的:每次打一個電話,我得到相同的號碼,使得隨意使用毫無意義;有什麼辦法可以解決這個問題嗎?需要隨時撥打電話號碼創建隨機號碼

import random 
class dicethrow: 
    result = random.randint (1,6) 
a = dicethrow() 
b = dicethrow() 

使用此,a == b總是,我需要他們是不同的。 謝謝!

+0

可能重複[random.choice不是隨機(http://stackoverflow.com/questions/1366047/random-choice-not-random) – bartimar

回答

1

怎麼樣

class dicethrow: 
    def __init__(self): 
     self.result = random.randint(1, 6) 
+0

所以問題是,只要我創建類,每一個參考被創建;你的方式,每次我打電話給班級,它創建的數字,我是對的嗎?無論如何,它的作品,謝謝! – Tanke88

2

在你的情況result是一個類(或靜態)變量 - 它被定義一次,是所有場合的同一。

__init__()方法定義result

import random 


class dicethrow: 
    def __init__(self): 
     self.result = random.randint(1,6) 

a = dicethrow() 
b = dicethrow() 
print a.result 
print b.result 

參見:

1

這是因爲結果是一個靜態變量,通過你的類的所有實例共享。

你所需要的就是一個函數:

import random 
def dicethrow(): 
    return random.randint (1,6) 
a = dicethrow() 
b = dicethrow()