Seite 1 von 1
Das @ Zeichen
Verfasst: Montag 19. April 2010, 19:57
von INFACT
Was bringt das @ Zeichen?
Ich sehe, dass häufiger in Programmen, aber ich weiß nicht was das bringt. Ich kann das bei google nicht finden, weil der das Zeichen einfach ignoriert.
Was bringt das denn?
Verfasst: Montag 19. April 2010, 20:00
von EyDu
Re: Das @ Zeichen
Verfasst: Montag 19. April 2010, 20:03
von gerold
INFACT hat geschrieben:Was bringt das @ Zeichen?
Hallo INFACT!
Ich mag diese "Dekoratoren" nicht, weil sie meiner Meinung nach die Programme unnötig verkomplizieren, und lehne deshalb Pakete/Module kategorisch ab, die nur mit Dekoratoren funktionieren, aber man sollte ja wissen, mit was man es zu tun hat:
http://www.linux-magazin.de/content/view/full/45979
mfg
Gerold

Re: Das @ Zeichen
Verfasst: Montag 19. April 2010, 20:59
von ms4py
gerold hat geschrieben:Ich mag diese "Dekoratoren" nicht, weil sie meiner Meinung nach die Programme unnötig verkomplizieren
Im Gegenteil! Das Schreiben von eigenen Dekoratoren ist zwar etwas kompliziert, bis man das System vollständig verstanden hat, aber das Anwenden ist IMO sehr elegant und einfach nachzuvollziehen.
Re: Das @ Zeichen
Verfasst: Montag 19. April 2010, 21:03
von Hyperion
ms4py hat geschrieben:gerold hat geschrieben:Ich mag diese "Dekoratoren" nicht, weil sie meiner Meinung nach die Programme unnötig verkomplizieren
Im Gegenteil!
Also mag Gerold Dekoratoren eigentlich, nur weiß er es nicht?
SCNR.
Macht meine Mutter auch gerne...
Chris:"Ich mag keine Auberginen"
Mutter: "Doch, ...."

Verfasst: Montag 19. April 2010, 21:11
von EyDu
Als Mitglied des funktionalen Mobs gilt für mich natürlich das Gegenteil von Gerolds Aussage

Dekoratoren vereinfachen oftmals Programme und deshalb favorisiere ich Module, welche diese stark einsetzen.
Verfasst: Montag 19. April 2010, 21:28
von Leonidas
EyDu hat geschrieben:Als Mitglied des funktionalen Mobs gilt für mich natürlich das Gegenteil von Gerolds Aussage

Dekoratoren vereinfachen oftmals Programme und deshalb favorisiere ich Module, welche diese stark einsetzen.
Als Mitgleid ebendiesen finde ich Dekoratoren auch voll ok und obschon ich zwar kein Fan der Syntax bin finde ich sie nützlich. Mir ist jedoch eigentlich völlig egal ob Module sie nutzen oder nicht, solange sie gut funktionieren und eine halbwegs brauchbare API haben.
Verfasst: Dienstag 20. April 2010, 06:46
von gerold
Hallo!
Ja! Geschmäcker sind verschieden.
Ich mag die Art nicht, wie Dekoratoren arbeiten. Mir kommt es immer so vor, als ob ich zuerst einmal ums Haus laufen muss, bevor ich eintreten darf.
Oft wäre das Gleiche mit einem Aufruf einer "normalen" Funktion getan. Und in solchen Fällen sehe ich Dekoratoren einfach nicht ein. Ich bin mehr für die direkte Art. Und ich setze in manchen Fällen auch gerne Funktionen innerhalb von Funktionen (Closures) ein. Weil ich da auf einen Blick sehe was vor sich geht.
Schönheit kommt auf den Betrachter an.
lg
Gerold

Verfasst: Dienstag 20. April 2010, 07:57
von cofi
gerold hat geschrieben:Oft wäre das Gleiche mit einem Aufruf einer "normalen" Funktion getan.
Immer, da
z.b. bei der Routenregistrierung sind Dekoratoren eine feine Sache, da laeuft man zwar erst ums Haus und tritt dann ein, die Alternative ist aber, erst einzutreten und dann nochmal rumzulaufen, wobei der Aufruf
eben nicht mehr ganz so klar ist. Aber vielleicht bin ich da zu sehr Teil des funktionalen Mobs

Verfasst: Dienstag 20. April 2010, 12:28
von gerold
cofi hat geschrieben:gerold hat geschrieben:Oft wäre das Gleiche mit einem Aufruf einer "normalen" Funktion getan.
Immer, da
Hallo cofi!
Nein, auf das hatte ich gar nicht angespielt. Eher auf so etwas:
So:
Code: Alles auswählen
@render_template("/homepagetemplates/homepage.tmpl")
def get_homepage(*args, **kwargs):
retvals = {
"vorname": u"Gerold",
"nachname": u"Penz"
}
return retvals
oder so:
Code: Alles auswählen
def get_homepage(*args, **kwargs):
retvals = {
"vorname": u"Gerold",
"nachname": u"Penz"
}
return render_template("/homepagetemplates/homepage.tmpl", retvals)
Ich frage mich, warum ich für so eine einfache, wunderbar direkt verwendbare nicht verwirrende Sache so etwas wie einen Dekorator brauche. :K Aber was soll´s. Ich muss ja nicht alles verkomplizieren. Es genügt wenn es andere Programmierer tun.
lg
Gerold

Verfasst: Dienstag 20. April 2010, 16:02
von cofi
gerold hat geschrieben:Nein, auf das hatte ich gar nicht angespielt.
Das war mir schon klar ⇒
Aber auch bei deinem Beispiel bevorzuge ich den Dekorator, da die verknuepfung mit dem Template hier einfach prominenter ist.
Zugegeben, ist es nicht optimal, da der Dekorator die eigentliche Arbeit erledigt und man das beim eigenen Aufruf besser sieht.
Verfasst: Dienstag 20. April 2010, 16:35
von BlackJack
@gerold: Bei einem Dekorator hat man die Chance vor und nach dem Aufruf der dekorierten Funktion etwas zu tun, zum Beispiel könnte man vorher prüfen ob das Template überhaupt existiert und falls nicht eine Fehlerseite ausliefern bevor die Funktion `get_homepage()` überhaupt aufgerufen wird. Mehr noch: man kann schon beim Initialisieren des Moduls diese Überprüfung vornehmen, weil der Dekorator zu dem Zeitpunkt ja schon ausgeführt wird. Da kann man dann zum Beispiel nach dem Template in verschiedenen Pfaden suchen.