gpt4 book ai didi

python - 错误 module.__init__() 在 Python 中最多接受 2 个参数错误

转载 作者:行者123 更新时间:2023-12-02 10:51:15 24 4
gpt4 key购买 nike

这个问题在这里已经有了答案:





TypeError: module.__init__() takes at most 2 arguments (3 given)

(5 个回答)


4年前关闭。




我有 3 个类(class):Nodo.py、Lista.py 和 ListaEnlazada.py

Nodo的代码是:

class Nodo:
def __init__(self, dato=None , nodo = None): #@Method
self._dato = dato
self._siguiente = nodo
def setDato(self, dato): #@Method
self._dato = dato
def getDato(self): #@Method
return self._dato
def setSiguiente(self,nodo): #@Method
self._siguiente = nodo
def getSiguiente(self): #@Method
return self._siguiente

Lista的代码是:
class Lista:        
def __init__(self): #@Method
self._tamanio=0
def elemento(self,pos): #@Method
pass
def agregar(self,elem,pos): #@Method
pass
def eliminar(sel,pos): #@Method
pass

最后,ListaEnlazada的代码是:
import Nodo
import Lista

class ListaEnlazada(Lista):
def __init__(self): #@Method
Lista.__init__(self)
self.__inicio = None
def esVacia(self): #@Method
return self.__inicio == None
def elemento(self,pos): #@Method
pos = pos-1
if(self.__inicio == None):
return None
else:
aux = self.__inicio
while(aux.getSiguiente() != None and 0<=pos):
aux = aux.getSiguiente()
pos -=1
return aux.getDato()
def agregar(self,elem,pos): #@Method
nuevo = Nodo(elem,None)
if(self.__inicio == None):
self.__inicio = nuevo
else:
aux = self.__inicio
while(aux.getSiguiente() != None):
aux = aux.getSiguiente()
aux.setSiguiente(nuevo)
self._tamanio +=1
def eliminar(self,pos): #@Method
cont = 0
if(cont == pos):
self.__inicio = self.__inicio.getSiguiente()
self._tamanio -=1
else:
aux = self.__inicio
while(True):
cont += 1
if(cont==pos):
aux2 = aux.getSiguiente()
aux.setSiguiente(aux2.getSiguiente())
break
aux = aux.getSiguiente()
if(pos<cont):
print ("fuera de rango")

当我编译 ListaEnlazada y 得到下一个错误:

TypeError: module.init() takes at most 2 arguments (3 given)



问题出在哪里,我该如何解决?

谢谢!

最佳答案

您已经将模块和类命名为相同的东西,并且您试图让类从模块继承,而不是从模块包含的类继承。

从类继承:

class ListaEnlazada(Lista.Lista):
...

并停止像 Java 一样编写 Python。如果你真的想把每个类都放在它自己的模块中,至少用小写命名模块,这是 Python 中的标准约定。更难混淆 listaLista比混淆 Lista和不同的 Lista .

关于python - 错误 module.__init__() 在 Python 中最多接受 2 个参数错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49869618/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com