Wie funktionieren Decoratoren ?

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
N317V
User
Beiträge: 504
Registriert: Freitag 8. April 2005, 13:23
Wohnort: München

Beitragvon N317V » Mittwoch 22. März 2006, 08:35

BlackJack hat geschrieben:Naja, man "braucht" sie ab und zu für `classmethod` oder `staticmethod`.

OK, seh ich ein: die Frage war falsch gestellt. Ich hab schon nicht verstanden, wofür ich 'classmethod' und 'staticmethod' brauchen soll. Das einzige in der Doku, was mich aufhorchen lässt, ist der Satz
Guido van Rossum hat geschrieben:The instance is ignored except for its class.
Was mir das bringen soll, ist mir aber immernoch unklar. Vielleicht später, wenn der Kaffee wirkt... :)
Es gibt für alles eine rationale Erklärung.
Außerdem gibt es eine irrationale.

Wie man Fragen richtig stellt
Benutzeravatar
mitsuhiko
User
Beiträge: 1790
Registriert: Donnerstag 28. Oktober 2004, 16:33
Wohnort: Graz, Steiermark - Österreich
Kontaktdaten:

Beitragvon mitsuhiko » Mittwoch 22. März 2006, 19:51

Guckst du:

Code: Alles auswählen

>>> class C(object):
...     def a(self):
...             print self
...     @classmethod
...     def b(cls):
...             print cls
...     @staticmethod
...     def c():
...             pass
...
>>> i = C()
>>> i.a()
<__main__.C object at 0xb7d804ac>
>>> i.b()
<class '__main__.C'>
>>> i.c()
>>> C.a()
Traceback (most recent call last):
  File "<stdin>", line 1, in ?
TypeError: unbound method a() must be called with C instance as first argument (got nothing instead)
>>> C.b()
<class '__main__.C'>
>>> i.c()
>>>
TUFKAB – the user formerly known as blackbird
N317V
User
Beiträge: 504
Registriert: Freitag 8. April 2005, 13:23
Wohnort: München

Beitragvon N317V » Donnerstag 23. März 2006, 08:16

Schönes Beispiel, blackbird, danke schön! Wie es grundsätzlich funktioniert hab ich schon verstanden. Gibt es zu dieser Lösung aber auch ein Problem? Oder anders gefragt: was wäre denn ein konkreter Anwendungsfall? Irgendwie lässt mich meine Phantasie diesbezüglich im Stich. ;-(
Es gibt für alles eine rationale Erklärung.
Außerdem gibt es eine irrationale.

Wie man Fragen richtig stellt
Benutzeravatar
Joghurt
User
Beiträge: 877
Registriert: Dienstag 15. Februar 2005, 15:07

Beitragvon Joghurt » Donnerstag 23. März 2006, 14:01

TarFile in der Standardbibliothek nutzt das, z.B.

Sieh dir mal den Quellcode an

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder