[Python-de] Funktion

Stephan Diehl stephan.diehl at gmx.net
Mit Jul 9 17:54:13 EDT 2003


Hi Jan,

vermutlich ist deine Funktion etwas aus dem Zusammenhang gerissen und sollte 
innerhalb einer klassen definition stehen, also:

class MyClass:
        def __str__(self):
                return self.id

Ansonsten hast du einfach eine Funktion mit Namen "__str__", die ein argument 
"self" erwartet. und einfach "self.id" zurückgibt (falls ein Attribut "id" 
existiert.

Wenn "__str__" allerdings die Methode einer Klasse ist, hat sie eine besondere 
Bedeutung:
"__str__" liefert die String Representation einer Instanz, d.h. wird 
aufgerufen, wenn die buildin Funktion "str" verwendet wird.
z.B.

  >>> class person:
...     def __init__(self,name):
...             self.name = name
...     def __str__(self):
...             return self.name
...
>>> jan  = person('jan')
>>> jan.__str__()
'jan'
>>> str(jan)
'jan'
>>>"%s" % jan
'jan'
>>>

Am besten besorgst du dir mal ein Buch über Python oder liest eines der vielen 
vorhandenen Tutorials (wie immer, ist www.python.org ein guter Startpunkt)

Stephan

On Mittwoch, 9. Juli 2003 16:15, Reinmueller, Jan wrote:
> Hi Liste, ich frage mich was folgende Funktion macht:
>
> def __str__(self):
>       return self.id
>
> Wird hier die ID der Instanz zurück gegeben? Für was steht den __str__ ?
>
> THX
>
> _______________________________________________
> Python-de maillist  -  Python-de at python.net
> http://python.net/mailman/listinfo/python-de