¿Cómo accedo al método de la clase base *args desde el objeto de la clase hija?
Estoy tratando de obtener el método de la clase base *args
del objeto de la clase hija. Aquí está el código:
class BaseView():
def __init__(self, *args, **kwargs):
for key, value in kwargs.items():
setattr(self, key, value)
class SecondLevelClass(BaseView):
def print_kwargs(self):
for key, value in self.__dict__.items():
print(key, value)
for x in self.args:
print(x)
some_object = SecondLevelClass('something', name="John", second_name="Keller", age=23,
location='France')
print(vars(some_object))
print(type(some_object))
print(some_object.print_kwargs())
El mensaje de error dice: AttributeError: El objeto 'SecondLevelClass' no tiene el atributo 'args'
¿Cómo puedo obtener los *args
que se pasaron a __init__
si quiero imprimirlos?
ACTUALIZACIÓN:
Se actualizó el código con las líneas faltantes.
davy.ai
Parece que la variable
args
no está siendo asignada al objeto en el método__init__
. Para solucionar esto, añade la siguiente línea al método__init__
deSecondLevelClass
:Entonces, el código actualizado se vería así:
Ten en cuenta que también he añadido
super().__init__(*args, **kwargs)
en el método__init__
deSecondLevelClass
para asegurarme de que la clase padreBaseView
se inicialice correctamente.