Error en código Python, métodos get() y set()

Iniciado por Locura_23, 7 Julio 2021, 20:02 PM

0 Miembros y 1 Visitante están viendo este tema.

Locura_23

Hola a todos, genios alguien se da cuenta del error en este código? Creo haber copiado tal cual el código del libro, Estoy usando Python 3.6.6.
Veo que setCualificacion() en main necesita dos argumentos, pero no distingo cuales...

Código (python) [Seleccionar]


#Modificar los campos de un objeto mediante métodos privados de la clase.

class Ficha_Empleado:
    def __init__(self):
        self.nombre = None
        self.edad = None
        self.antiguedad = None
        self.__cualificacion = None

    def Sueldo(self):
        return( 1000 + self.antiguedad * 25 +  self.__cualificacion * 100)

    def setCualificacion(self,cualif: int):
        if cualif == 1 or cualif == 2 or cualif == 3 or cualif == 4 or cualif == 5:
            self.__cualificacion = cualif
    def getCualificacion(self):
        return(self.__cualificacion)

def main():

    a = Ficha_Empleado
    a.nombre = "Javier"
    a.edad = 21
    a.antiguedad = 2

    a.setCualificacion(3)

    print("El sueldo de ",a.nombre,",con ",a.antiguedad," años en la empresa y con cualificación\
          de grado ",a.getCualificacion()," es de ", a.Sueldo(), " euros." )

main()




error:

a.setCualificacion(3)
TypeError: setCualificacion() missing 1 required positional argument: 'cualif'

engel lex

linea 22

debe ser
a = Ficha_Empleado()

para que se inicialize la clase
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

Locura_23