@Fin97: Vor Klassen sollte man sich mal mit Funktionen beschäftigt haben und von da kennt man ``return``. Und wie gesagt, die Klasse dort ist bisher eine recht umständliche Art eine Funktion zu schreiben. Was zusätzlich noch dadurch verschärft wird das alle Angestellten keinen Namen und keine Tätigkeit haben, aber schon einen festen Wert für das Gehalt. Das sind ja alles Sachen die man eigentlich doch ganz gerne abgeben können möchte wenn man ein `Angestelter`-Exemplar (sic!) erstellt.
Letztlich ist das wie gesagt eine einfache Funktion, da braucht man keine Klasse für:
Code: Alles auswählen
#!/usr/bin/env python
# coding: utf8
from __future__ import absolute_import, division, print_function
def berechne_steuern(gehalt, basisfreibetrag, zusatzfreibetrag):
return 0.45 * (gehalt - (basisfreibetrag + zusatzfreibetrag))
def main():
print(berechne_steuern(10, 5, 30))
if __name__ == '__main__':
main()
Du benötigst *keine* Nachkommastellen, rundest aber auf 3 Nachkommastellen‽ Wenn man gar keine braucht, dann wandelt man das Ergebnis doch besser in eine ganze Zahl um oder benutzt die passende dedizierte Funktion aus dem `math`-Modul. Also `trunc()` oder `floor()`.
Wir wissen übrigens immer noch nicht woran das Problem denn nun lag/liegt, also ob Du die Methode nicht aufgerufen hast oder ob Du Python 2 verwendest. Darum ist es immer eine gute Idee den tatsächlichen Code mit dem tatsächlichen Ergebnis zu zeigen und nicht Code der so ähnlich ist wie der der Probleme bereitet.