2013-07-11 77 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)