Python TypeError:\uuuu init\uuuuuu()正好接受4个参数(给定3个)

Python TypeError:\uuuu init\uuuuuu()正好接受4个参数(给定3个),python,command-line-arguments,argparse,Python,Command Line Arguments,Argparse,我试图根据传递给python程序的命令行参数的数量,在User.py中实例化用户类的实例。我得到了TypeError:\uuuu init\uuuu()正好接受4个参数(给定3个)。代码如下: #!/usr/bin/python import sys, argparse from user import User if __name__ == "__main__": # Parse args parser = argparse.ArgumentParser("Batch insert"

我试图根据传递给python程序的命令行参数的数量,在User.py中实例化用户类的实例。我得到了
TypeError:\uuuu init\uuuu()正好接受4个参数(给定3个)
。代码如下:

#!/usr/bin/python
import sys, argparse
from user import User

if __name__ == "__main__":
  # Parse args
  parser = argparse.ArgumentParser("Batch insert")
  parser.add_argument('-d','--dbfilepath', dest='dbfilepath', help='Absolute path and filename of the sqlite database file', required=False, default='/usr/local/foo/bar.sqlite')
  parser.add_argument('-v','--verbose', dest='verbose', help='Verbose output', required=False, action='store_true')
  parser.add_argument('-l', '--list', help='comma-delimited list of username password pairs', required=True, type=str)
  args = parser.parse_args()
  my_list = [str(item) for item in args.list.split(',')]
  # Only continue if we have even number of items in the un/pw list
  if len(my_list) % 2 == 0:
    count = 0
    u = User(args.dbfilepath, args.verbose)
    while (count < len(my_list)):
      u.create(my_list[count], my_list[count+1])
      count = count + 1
执行:

./batch-insert.py -d /tmp/sql.sqlite -v --list stinky,cat

Traceback (most recent call last):
  File "./create-users-batch.py", line 15, in <module>
    u = User(args.dbfilepath, args.verbose)
TypeError: __init__() takes exactly 4 arguments (3 given)
/batch-insert.py-d/tmp/sql.sqlite-v——列出臭味,cat
回溯(最近一次呼叫最后一次):
文件“/create users batch.py”,第15行,在
u=用户(args.dbfilepath,args.verbose)
TypeError:\uuuu init\uuuuuu()正好接受4个参数(给定3个)

我做错了什么?

这是什么版本的Python?出于好奇,如果您将
类用户:
行更改为
类用户(对象):
,会发生什么情况?如果您执行
帮助(用户)
,您是否会获得所需对象的帮助?对于您提供的代码来说,这似乎很奇怪。。。(还要注意的是,python2.x有一个内置的
user
模块,但其中没有
user
类,因此您不太可能意外导入该类…)问题不在您向我们展示的代码中。您确定
batch insert.py
user.py
在同一目录中吗?您确定已将上一次更改保存到了上一页的Python 2.6.6(r266:84292,2012年9月11日,08:28:27)[GCC 4.4.6 20120305(Red Hat 4.4.6-4)]linux2@dg99:当我那样做的时候,什么也不会发生;同样的错误。
./batch-insert.py -d /tmp/sql.sqlite -v --list stinky,cat

Traceback (most recent call last):
  File "./create-users-batch.py", line 15, in <module>
    u = User(args.dbfilepath, args.verbose)
TypeError: __init__() takes exactly 4 arguments (3 given)