Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/277.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python TypeError:list()为list类继承最多接受1个参数(给定3个)_Python - Fatal编程技术网

Python TypeError:list()为list类继承最多接受1个参数(给定3个)

Python TypeError:list()为list类继承最多接受1个参数(给定3个),python,Python,我在stackoverflow中搜索了其他帖子,甚至复制了它们,以便在我的机器上试用。但是,它一直无法抛出“TypeError” 我还试着用pass空课。但是,如果我继承了,我想我错过了一些东西,而不是添加了更多或错误的东西,那么这也失败了 1) 这是什么?为什么? 2) 如何修复它 关于TypeError的进一步快照: >>> class ListClass(list): ... pass ... Traceback (most recent call last):

我在stackoverflow中搜索了其他帖子,甚至复制了它们,以便在我的机器上试用。但是,它一直无法抛出
“TypeError”

我还试着用pass空课。但是,如果我继承了,我想我错过了一些东西,而不是添加了更多或错误的东西,那么这也失败了

1) 这是什么?为什么? 2) 如何修复它

关于TypeError的进一步快照:

>>> class ListClass(list):
...     pass
...
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: list() takes at most 1 argument (3 given)  
类列表类(列表): ... 通过 ... 回溯(最近一次呼叫最后一次): 文件“”,第1行,在 TypeError:list()最多接受1个参数(给定3个)
当您创建ListClass对象时,会将它交给许多参数,这就是您要做的:

s = list(2,3,3)
这就是你要做的:

s = list([2,3,3])

请在解释器上尝试此代码段。

将参数元组
args
传递给实例的
扩展:

>>> class ListClass(list):
...     def __init__(self, *args):
...         super().__init__()
...         self.extend(args)
...         self.append('a')
...         self.name = 'test'
...
>>> ListClass(1, 2, 3)
[1, 2, 3, 'a']
或者将
args的解包元组
传递给
super
\uuuu init\uuuu
,因为
列表
可以用
iterable
初始化

>>> class ListClass(list):
...     def __init__(self, *args):
...         super().__init__(args) # one argument: tuple
...         self.append('a')
...         self.name = 'test'
...
>>> ListClass(1, 2, 3)
[1, 2, 3, 'a']
更新:

您可能会将一个对象指定给名称
列表

>>> list = []
>>> class ListClass(list):
...    pass
...
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: list() takes at most 1 argument (3 given)
>>列表=[]
>>>类列表类(列表):
...    通过
...
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
TypeError:list()最多接受1个参数(给定3个)

停止尝试将所有这些参数传递给
列表()
。将这三个参数放在一组(另一组)括号中进行修复,就像创建一个简单的
列表一样。能否向
ListClass
添加一个调用,以便我们能够更深入地了解您无法实现的目标?我尝试了您的代码(复制并粘贴)但没有运气。我猜它在您的机器上工作,但是,我的机器(使用python 3.4)始终出现相同的类型错误。不确定有什么区别。我在python 3.4上执行了此操作。重新启动您的终端。您已将列表对象分配给
列表
。请参阅更新。但是
列表()
[1,2,3]的意义何在
本身使我成为一个列表,所以我希望
list(1,2,3)
是这个列表的“正式”版本。
list([1,2,3])
只是多余的。
>>> list = []
>>> class ListClass(list):
...    pass
...
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: list() takes at most 1 argument (3 given)