String ist plötzlich object

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.
Antworten
nvidia
User
Beiträge: 31
Registriert: Freitag 11. Februar 2011, 16:46

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
Zuletzt geändert von nvidia am Dienstag 15. März 2011, 15:21, insgesamt 1-mal geändert.
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

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)
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
nvidia
User
Beiträge: 31
Registriert: Freitag 11. Februar 2011, 16:46

ach ok, die hab ich nicht gesehen. gut, die werd ich nutzen in zukunft.
Benutzeravatar
cofi
Python-Forum Veteran
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

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.
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.
Antworten