2013-02-19 59 views
0

我試圖建立一個產生一個隨機數每次調用時間的函數,它以恆定的整數,我的函數看起來像的輸出整數:增加一個功能

def offsetradf(): 
    global x 
    x = random.randint(0,7) 
    return x 
y = offsetradf() 

elif string.find(line,'nslice')==1: 
     nslice = nslice+y 
     output_file.write(' nslice = '+str(nslice)+'\n') 

我收到的錯誤信息是:

Traceback (most recent call last): 
File "./rungenesis.py", line 23, in <module> 
nslice = nslice+offsetradf 
TypeError: unsupported operand type(s) for +: 'int' and 'function' 

任何時候它是在代碼以後稱爲幫助會很棒。

+4

你確定你沒有做 - 'y = offsetradf'而不是'y = offsetradf()'? – 2013-02-19 14:49:58

+0

'nslice + = random.randint(0,7)'? – YXD 2013-02-19 14:50:04

回答

1

讀取錯誤:)

nslice = nslice+offsetradf 
TypeError: unsupported operand type(s) for +: 'int' and 'function' 

nsliceintoffsetradf是一個函數 - 你沒有調用它,你只是命名它。這裏的所有都是它的。

正確的成語:

nslice = nslice + offsetradf() 

通知的()

+0

事實上,他做了'nslice = nslice + y',並且'y'被分配了offsetradf()的值,就像他的代碼一樣。不知道其他代碼。 – 2013-02-19 14:52:57

+0

解釋器在報告錯誤時不會替換您的姓名。我認爲他引用的這段代碼並不是例外的來源 – slezica 2013-02-19 14:54:04