Ich bin ein wenig verwirrt darüber, wie man in dieser Eigenschaft eingerichteten Code zu bekommen und einzustellen. Ist das der richtige Weg, den Property Decorator zu benutzen? Ich bin mir jedoch nicht sicher, wie ich es benutzen soll. Ich kann c.temperature aufrufen und es gibt den Anfangswert zurück (0 oder was auch immer ich verwendet habe, um die Klasse zu instanziieren), aber danach kann ich die Temperatur nicht mit set_temperature() einstellen. Ich habe mir ein paar SO-Antworten zu diesem Thema angesehen, aber wahrscheinlich den Punkt verpasst.Property Decorator für Getter und Setter
class Celsius:
def __init__(self, temperature=0):
self._temperature = temperature
def to_f(self):
return self._temperature * 1.8 + 32
@property
def temperature(self):
print "Celsius:get_temperature"
return self._temperature
@temperature.setter
def temperature(self, value):
if value < -273:
raise ValueError("Temperature below -273 is impossible")
print "Celsius:set_temperature"
self._temperature = value
"aber danach kann ich die Temperatur nicht mit set_temperature() einstellen" - warum haben Sie erwartet, dass es etwas namens 'set_temperature' gibt? Du hast nie etwas mit diesem Namen definiert. – user2357112
tatsächlich war es nicht einmal mit nur c.temperature = 10 für zB ich denke, weil ich nicht von Objekt geerbt wurde (wie in der anderen Antwort unten erwähnt) – user3079275