Hallo allerseits, hallo Ole, evtl. könnte man das auch mit dem descriptor-protokoll lösen, so ha ich das bei einem sehr aufwendigen Projekt gemacht. Sehr gutes Tutorial (englisch): https://www.youtube.com/watch?v=sPiWg5jSoZI update vom selben Autor: https://www.youtube.com/watch?v=5nXmq1PsoJ0 https://docs.python.org/3/howto/descriptor.html Dann kannst du sowas machen: class Foo: myprop = Cfg(init=1.23) Grüße Gregor Am 26.05.20 um 17:44 schrieb Оlе Ѕtrеісhеr:
Hallo,
wir möchten in einer Klasse eine Reihe von Attributen konsistent speichern; d.h. es gibt Beschränkungen für die verschiedenen Attribute. Die Idee ist, das durch Properties zu machen:
Class Cfg: def __init__(self); self._myprop = 1.23
[...]
@property def myprop(self) return self._myprop
@myprop.setter def myprop(self, val): if val > self._maxprop: # als Beispiel raise ValueError() self._myprop = val
Das Unschöne daran ist, dass die Initialisierung der Property im __init__ und damit physisch weit entfernt vom Rest erfolgt. Das ist, wenn man viele (>>20) Attribute hat, nicht mehr übersichtlich.
Wie bringt man die enger zusammen? Ein @myprop.init gibt es ja offensichtlich nicht und kann man auch nicht so ohne weiteres anlegen, oder? Oder was wäre ein sinnvolles Pattern hier?
Schöne Grüße
Ole _______________________________________________ python-de maillist - python-de@python.org https://mail.python.org/mailman/listinfo/python-de