Ich habe (leider) erst letztens von den Funktions Dekoratoren gehört. Eine Frage vorweg wie lange gibt es die schon?
Und nun zur eigentlichen Thematik. Funktionsdekoratoren sind genaugenommen nur Funktionen die eine andere Funktion in sich kapseln z.b
Code: Alles auswählen
class Test(object):
def __init__(self, val1, val2)
self.val1 = val1
self.val2 = val2
@property # macht den zugriff Test.add möglich
def add(self):
return self.val1 + self.val2
@staticmethod #macht self überflüssig
def hallo():
print 'Hello World'
>>> x = test(5,10)
>>> print x.add
15
Also wie ich das jetzt verstanden haben sind property und staticmethod schon-existierende funktions dekoratoren mit einer bestimmten Funktion.
@property ermöglicht es beim Aufrufen einer bestimmten Funktionen es wie bei einer Variable zu machen
z.b:
Code: Alles auswählen
print Test.add
Und der 2te Dekorator @staticmethod den gibt es ja eigentlich nur damit man sich self sparen kann oder? Wie funktioniert dieser?
Außerdem kann ich irgendwie nichts vernünftiges zu any() finden. Könnte mir da auch jemand eine Referenz geben bzw. mir das genauer erklären?
Noch eine letzte Frage:
geht folgendes bei prinzipiell jeder zuweisung?:
Code: Alles auswählen
test = [x for x in z]
Tut mir Leid, sind sicher dumme Fragen bei aber irgendwie verstehe ich es einfach nicht und ich bin mir sicher mit @property etc. lassen sich schöne dinge machen genauso wie mit any() und [x for x in z]
MfG,
CracKPod