He definido una clase en un archivo llamado Object.py
. Cuando trato de heredar de esta clase en otro archivo, llamar al constructor arroja una excepción:
TypeError: module.__init__() takes at most 2 arguments (3 given)
Este es mi código:
import Object
class Visitor(Object):
pass
instance = Visitor() # this line throws the exception
¿Qué estoy haciendo mal?
Respuestas:
Su error está sucediendo porque
Object
es un módulo, no una clase. Entonces, tu herencia es desastrosa.Cambie su declaración de importación a:
y su definición de clase para:
o
cambie su definición de clase a:
fuente
ClassName
completo? Al igual queclass Visitor()
?Incluso después de la respuesta de @Mickey Perlstein y sus 3 horas de trabajo de detective, todavía me tomó unos minutos más aplicar esto a mi propio desastre. En caso de que alguien más sea como yo y necesite un poco más de ayuda, esto es lo que estaba sucediendo en mi situación.
Clase inicial GeoJsonResponse:
Se ve bien. No hay problemas hasta que intente depurar el problema, que es cuando recibe un montón de mensajes de error aparentemente vagos como este:
Los errores hicieron todo lo posible para señalarme en la dirección correcta, y la respuesta de @Mickey Perlstein fue acertada, solo me llevó un minuto poner todo junto en mi propio contexto:
Estaba importando el módulo :
cuando debería haber estado importando la clase :
Espero que esto ayude a alguien. (En mi defensa, todavía es bastante temprano).
fuente
También puede hacer lo siguiente en Python 3.6.1
y su definición de clase para:
fuente
o
Si Object es un
.py
archivo.fuente
En mi caso donde tuve el problema, me refería a un módulo cuando intenté extender la clase.
Si observa la Información de la documentación, verá el "registro" como módulo.
En este caso específico, simplemente tuve que heredar el módulo de registro para crear una clase adicional para el registro.
fuente