L'utilisation de l'héritage en python

c'est mon devoir, je l'ai vu affiché sur le site web avant, mais il semble que c'était pas résolu et j'ai eu un autre message d'erreur qu'une personne qui pose la question avant de.

la première partie du problème est de définir la sous-classe des Travailleurs qui hérite de l'Employé et comprend un attribut qui fait référence à un autre employé qui est le gestionnaire du travailleur. Vous devez définir une méthode get_manager qui renvoie les travailleurs manager.

Exemple:

worker = Worker("Fred", 52000, myboss)

La deuxième partie du problème est de définir l'Exécutif de la sous-classe qui hérite de l'Employé et comprend un attribut qui fait référence à la prime annuelle.

Vous devez remplacer le salaire méthode de calcul de la rémunération des dirigeants sur la base de son salaire et de la prime. Vous devez utiliser la méthode de salaire de l'Employé dans la définition du salaire de la méthode pour la classe affaires.

Exemple:

executive = Executive("Kerry", 520000, 1040000)

Mon code est écrit ci-dessous et le message d'erreur que je reçois est: "global nom de "salaire" n'est pas défini "dans la ligne" Employé.init(self, nom, salaire) ' pour la classe de Direction (Il travaille pour la catégorie des Travailleurs). Pourquoi j'obtiens cette erreur et comment puis-je résoudre ce problème?

Merci pour votre aide!

class Employee(object):
    def __init__(self, name, salary):
        self._name = name
        self._salary = salary

    def my_name(self):
        return self._name

    def wage(self):
        return self._salary/26   # fortnight pay

class Worker(Employee):
    def __init__(self, name, salary, manager):
        Employee.__init__(self, name, salary)
        self._manager = manager

    def getManager(self):
        return self._manager

class Executive(Employee):
    def __init__(self, name, wage, yearlyBonus):
        Employee.__init__(self, name, salary) 
        self._yearlyBonus = yearlyBonus

    def wage(self):
        return Employee.wage(self)
Vous avez oublié de compte pour la self._yearlyBonus dans le calcul des salaires pour Executive
J'ai corrigé mon code, mais j'ai toujours le message d'erreur "vous avez un mauvais salaire pour le général" ...
Est-ce un réel message d'erreur? Et où est-il en venir? Ne pas le yearlyBonus seulement être appliqué une fois par année ou aussi être divisée par 26?
Merci Tobias! J'ai juste eu à le diviser par 26!
Merci à vous tous pour l'aide, le code fonctionne parfaitement maintenant!

OriginalL'auteur kate88 | 2013-04-21