Python:继承类的麻烦

时间:2017-11-04 12:41:14

标签: python python-2.7 class

我有两节课。 producto,具有以下类定义:

class producto(object):

    def __init__(self, precio, nombre, _id, cantidad):

        self.__precio = precio
        self.__nombre = nombre
        self.__id  = _id
        self.__cantidad = cantidad

alimentacion具有以下类定义:

class alimentacion(producto):

    def __init__(self, precio, nombre, _id, cantidad, dias_caducidad):

        super(alimentacion, self).__init__(precio, nombre, _id, cantidad)

        self.__dias_caducidad = dias_caducidad

当我尝试像这样实例化类alimentacion的成员时,

salmon = alimentacion(15, 'salmón', 435, 2, 15)

我收到以下错误:

C:\Python27\python.exe C:/Users/Ale/PycharmProjects/ticket/main.py
Traceback (most recent call last):
  File "C:/Users/Ale/PycharmProjects/ticket/main.py", line 2, in <module>
    from clases.tipos_producto import *
  File "C:\Users\Ale\PycharmProjects\ticket\clases\tipos_producto.py", line 4, in <module>
    class alimentacion(producto):
TypeError: Error when calling the metaclass bases
    module.__init__() takes at most 2 arguments (3 given)

Process finished with exit code 1

1 个答案:

答案 0 :(得分:0)

根据错误,您的producto类在一个名为producto的模块中定义,您正在从模块导入和继承,而不是类。变化:

class alimentacion(producto):

为:

class alimentacion(producto.producto):

所以你从模块中定义的类继承。