2013-07-11 110 views
-3

我一直在試圖讓一個函數來工作,我只是不能似乎弄清楚爲什麼我得到這個功能有什麼問題?不能弄明白

TypeError: stringCounter() takes exactly 1 argument (0 given) 

每次我運行此代碼

def stringCounter(count): 
    name ='Hi' 
    formatString = "%s run count is %d" 
    print formatString % (name, count) 

test = stringCounter() 

test.stringCounter(1) 

我有嘗試添加自己,搞亂變數傳遞我做錯了什麼?多謝你們!

回答

4

此:

test = stringCounter() 

顯然是錯誤的,它會調用stringCounter()功能,不傳遞任何參數。正如錯誤所述。只要刪除這一行。

這:

test.stringCounter(1) 

也是錯誤的,不存在所謂的test東西包含在你的程序中調用stringCounter()功能。它應該只是:

stringCounter(1) 
4

的錯誤是不言自明:

test = stringCounter() 

你沒有傳遞任何參數來stringCounter()這裏,當一個人(即count)的預期。你可能只是想

stringCounter(1) # don't assign this to anything, it returns None 
1

這樣做:

test = stringCounter 

test(1) 

或者直接:

stringCounter(1) 
0

你不帶任何參數的排隊叫號stringCounter

測試= stringCounter()

它看起來像你試圖實例化它,但它是一個函數,而不是一個類。

0

你不傳遞任何參數的函數test = stringCounter()

而且由於測試是沒有這一行就沒有意義了(先前的功能沒有返回)

test.stringCounter(1)