Python Problem mit Getter und Setter

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Ninjacyclone2
User
Beiträge: 1
Registriert: Montag 5. April 2021, 00:34

Hallo,

Ich habe ein Problem mit zwei Attributen die ich auf private gesetzt habe,
durch einen Getter und Setter sollte es wieder funktionieren, jedoch klappt es irgendwie nicht...

Python Text:

class Belag:

def __init__ (self, name, preis):
self.__Name = name
self.__Preis = preis

def gibName(self):
return self.Name

def setzeName(self, Name):
self.Name = name

def gibPreis(self):
return self.Preis

def setzePreis(self, Preis):
self.Preis = preis

Fehlermeldung bei dem folgenden print Befehl (print(belag5.Name)):

print(belag5.Preis)
AttributeError: 'Belag' object has no attribute 'Preis'




Freue mich auf schnelle Antworten!

MfG Ninja
Benutzeravatar
__blackjack__
User
Beiträge: 13123
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@Ninjacyclone2: Das ”Problem” ist ganz einfach dadurch gelöst in dem Du aufhörst zu denken es gäbe so etwas wie „private“ in Python und dass das zwei führende Unterstriche wären. Lass die beiden führenden Unterstriche weg und die trivialen Getter/Setter und dann hast Du funktionierenden, idiomatischen Python-Code.

Namen werden in Python klein_mit_unterstrichen geschrieben. Ausnahmen sind Konstanten (KOMPLETT_GROSS) und Klassen (PascalCase).

Der Code sollte also so aussehen:

Code: Alles auswählen

class Belag:
    def __init__(self, name, preis):
        self.name = name
        self.preis = preis
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
Antworten