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.
Das tolle an Python ist, dass alles ein Objekt ist, auch Funktionen:
In Python kann ich Reflection durch Dictionaries ausdrücken, was bei anderen Sprachen nicht funktioniert. Darf ich das vom Stil her machen?
"type(a)" verrät mir, dass das kein Dictionary ist. Allerdings nur wenn ich deinen Code-Schnipsel so korrigiere, dass die letzte Zeile "a = {"hi",hi()}" lautet. Gespeichert wird lediglich der Rückgabewert von hi() und das wäre in dem Fall None.
Zuletzt geändert von webspider am Montag 30. Januar 2012, 22:57, insgesamt 1-mal geändert.
Sicher kannst du das machen, Reflection wuerde ich es aber nicht nennen, das hat den Beigeschmack, dass es etwas besonderes ist.
Unter der Annahme, dass du in Python 3 arbeitest (wenn nicht, solltest du die Klammern bei ``print`` weglassen) erstellst du da aber kein Dictionary, sondern ein Set. (Wenn man den Syntax-Fehler ausbuegelt)
Dispatching ueber Funktions-Dictionaries ist sogar Pythons ideomatischer "Ersatz" fuer ``switch`` Statements.
cofi hat geschrieben:Unter der Annahme, dass du in Python 3 arbeitest (wenn nicht, solltest du die Klammern bei ``print`` weglassen) erstellst du da aber kein Dictionary, sondern ein Set. (Wenn man den Syntax-Fehler ausbuegelt)
Also ich kann damit auch unter Python 2.x ein Set erstellen.
Python 2.7.2+ (default, Oct 4 2011, 20:03:08)
[GCC 4.6.1] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> a = {"hi", "hi"}
>>> a
set(['hi'])
A partial list of 3.1 features that were backported to 2.7:
The syntax for set literals ({1,2,3} is a mutable set).
Oh es kamen sogar Set Comprehensions mit. Danke fuer den Einwurf. Vielleicht haette ich einfach sagen sollen "Wenn du keinen SyntaxError siehst, ist das ein Set, kein Dictionary"