Seite 1 von 1

String ist plötzlich object

Verfasst: Dienstag 15. März 2011, 15:12
von nvidia
Hallo,
ich bin auf etwas merkwürdiges gestoßen, hier aus meiner Klasse:

Code: Alles auswählen

def _func(self):
   data = ["string1","string2"]
   print data[1]
   print self._func2(data[1])

def _func2(self, s):
   print s
   return s

//Ergebnis
string2
<__main__.Mail instance at 0x88fe38c>
<__main__.Mail instance at 0x88fe38c>
wie kommt das? wie krieg ich das wieder in ordnung?
//ok konnte es lösen
in habe vergessen in meiner zweiten methode self zu deklarieren, und dann wurde data[1] irgentwie als object gewertet

Re: String ist plötzlich object

Verfasst: Dienstag 15. März 2011, 15:15
von Hyperion
Du könntest mal die Python-Code-tags nutzen.

Du zeigst das wichtigste nicht: Die Aufrufstruktur und den ursprünglichen Datentypen des Objektes. Ohne das kann man da schwerlich was drüber sagen. (zudem kann ja auch immer anderer, ungezeigter Code da reinspielen)

Re: String ist plötzlich object

Verfasst: Dienstag 15. März 2011, 15:22
von nvidia
ach ok, die hab ich nicht gesehen. gut, die werd ich nutzen in zukunft.

Re: String ist plötzlich object

Verfasst: Dienstag 15. März 2011, 15:43
von cofi
nvidia hat geschrieben://ok konnte es lösen
in habe vergessen in meiner zweiten methode self zu deklarieren, und dann wurde data[1] irgentwie als object gewertet
Sowas doch bitte in einem neuen Post.
Das passiert nicht "irgendwie", sondern Python bindet die Instanz immer an das 1. Argument einer Methode, ganz egal ob das `self`, `Mona` oder `Lisa` heisst.

Re: String ist plötzlich object

Verfasst: Dienstag 15. März 2011, 16:49
von problembär
String ist plötzlich object
In Python ist alles ein Objekt, also auch ein String.

"Beweis":

Code: Alles auswählen

a = "Hallo"
print dir(a)
Siehst Du: Der String "a" hat Methoden.