Hier ist mein Problem. Ich möchte, dass die folgende Klasse eine Reihe von Eigenschaftenattributen aufweist. Ich könnte sie alle wie foo
und bar
schreiben, oder basierend auf einigen anderen Beispielen, die ich gesehen habe, sieht es so aus, als könnte ich einen Klassen-Dekorator oder eine Metaklasse verwenden oder die __new__
-Methode überschreiben, um die Eigenschaften automatisch festzulegen. Ich bin mir nur nicht sicher, was der "richtige" Weg wäre, es zu tun.Soll ich eine Metaklasse oder einen Klassen-Decorator verwenden oder die Methode __new__ überschreiben?
class Test(object):
def calculate_attr(self, attr):
# do calculaty stuff
return attr
@property
def foo(self):
return self.calculate_attr('foo')
@property
def bar(self):
return self.calculate_attr('bar')
Im Zweifelsfall geht immer mit einfacher und offensichtlich. Wenn * Sie * es nicht leicht herausfinden können, können auch keine Dummies (wie ich), die aufgefordert werden, Ihren Code zu pflegen. –
Wenn Sie die Art Ihrer Fragen ändern, ist es normalerweise am besten, nur eine neue zu öffnen. –