Seite 1 von 1
Dictionary
Verfasst: Montag 30. Januar 2012, 22:49
von theo.puke
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?
Re: Dictionary
Verfasst: Montag 30. Januar 2012, 22:55
von webspider
"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.
Re: Dictionary
Verfasst: Montag 30. Januar 2012, 22:56
von cofi
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.
Re: Dictionary
Verfasst: Montag 30. Januar 2012, 23:06
von snafu
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.
Code: Alles auswählen
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).
http://docs.python.org/dev/whatsnew/2.7 ... 1-features
Oder meintest du etwas anderes?
Re: Dictionary
Verfasst: Montag 30. Januar 2012, 23:10
von cofi
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"

Re: Dictionary
Verfasst: Dienstag 31. Januar 2012, 15:53
von theo.puke
Ach ja stimmt, das ist mir beim Eintippen nicht aufgefallen. Da gehört ein Doppelpunkt zwischen die beiden. Aha ok danke für eure Beiträge