Hallo.
On Mon, 8 Mar 2004 09:10:14 +0100 Fabian Hänsel fabtagon@gmx.de wrote:
Frank Benkstein wrote:
txt.args[1]
'Connection refused'
c = 'Connection refused' txt.args[1].startswith(c)
True
txt.args[1].endswith(c)
True
txt.args[1] is c
False
"txt.args[1] is c" wäre wahr, wenn sich beide auf den selben Speicherbereich bezögen. Wenn du auf Gleichheit prüfen willst ist "txt.args[1] == c" der richtige Ausdruck.
c = txt.args[1]
Hier wird "c" zu einem Pointer auf txt.args[1]
txt.args[1].startswith(c)
True
txt.args[1].endswith(c)
True
txt.args[1] is c
True
womit beide auf die selbe Adresse verweisen.
OK, habe ich auch gedacht, aber:
a = 'Hallo' b = 'Hallo' a is b
True
Du scheinst trotzdem recht zu haben. Das gemeine Python erkennt anscheinend, dass das der String der gleiche ist und allokiert nicht nochmal Speicher...
Danke dir
Frank Benkstein.