Also arbeite ich an der Einrichtung einer Python-Klasse, die als eine Möglichkeit verwendet werden soll Teile eines Wörterbuchs zu erhalten/setzen. Ich versuche es einzurichten, so dass ich ein Wörterbuch (zum Beispiel ID-Nummern: Namen) und eine Variable, die das derzeit ausgewählte Mitglied des Wörterbuchs ist.Getter/Setter für Python Klasse
Ich versuche es zu implementieren, damit ich Getter und Setter zurückgeben, was der aktuell ausgewählte Wörterbuchwert ist, sowie Setter mit einem try/except-Block, um die aktuelle Auswahl zu einem anderen Mitglied im Wörterbuch zu ändern. Es ist mir egal, die ID-Nummer zu übergeben, ich muss nur sicherstellen, dass ich den Namen über den Getter abrufen kann. Dies ist der Code, den ich habe:
class Classroom:
def __init__(self):
self.__classList = {
001: Mark,
002: Kevin,
003: Stacy}
self.currentStudent = self.__classList[001] #start at the beginning of the list
@property
def currentStudent(self):
return self.__currentStudent
@currentStudent.setter
def currentStudent(self, ID):
try:
currentStudent = __classList[ID]
except:
print("Invalid ID entered")
Als ich den Code zu testen, aus meinem Verständnis mit der Verwendung von @property wenn ich Eingabe folgenden:
classroom = Classroom()
classroom.currentStudent = 002
print(classroom.currentStudent)
ich soll den Siebdruck „habe Kevin " Nein? Was ich im Moment bekomme ist, dass der Bildschirm 002 druckt. Was mache ich falsch?
Sie keine Instanz von 'Classroom' gemacht hat. Sie arbeiten mit dem Klassenobjekt selbst, das sich sehr unterschiedlich verhält. – user2357112
Auch dein Setzer ist sowieso kaputt. – user2357112
'currentStudent = __classList [ID]' <- Woher soll die '__classList' kommen? Es wird nicht funktionieren, es sei denn, Sie haben es im globalen Namespace ... Auch, da Sie es nirgendwo speichern, können Sie auch die Methode löschen. – zwer