Code: Alles auswählen
>>> result = ""
>>> for char in "foo":
... result += char
...
>>> result is "foo"
False
>>> result
'foo'
>>> result = "foo" # Neuzuweisung
>>> result is "foo"
True
Code: Alles auswählen
>>> result = ""
>>> for char in "foo":
... result += char
...
>>> result is "foo"
False
>>> result
'foo'
>>> result = "foo" # Neuzuweisung
>>> result is "foo"
True
Code: Alles auswählen
>>> a='abc'
>>> b='abc'
>>> a is b
True
>>> a='a bc'
>>> b='a bc'
>>> a is b
False
>>> a='abc'
>>> b='abc'
>>> a is b
True
Python 3:>>> "foo" is "f" + "o" + "o"
False
Es sieht so aus, als ob Python3 noch etwas mehr optimiert...>>> "foo" is "f" + "o" + "o"
True
Code: Alles auswählen
>>> "foo" is "f"+"o"+"o"
True
Code: Alles auswählen
>>>> "foo" is "f"+"o"+"o"
True
Vorsicht! Python hat natürlich auch eine Compiler-Komponente - denn der Interpreter liest und versteht lediglich speziellen Bytecode. Man spricht idR. einfach vom Python-"Interpreter", wenn man ein Python-Programm ausführen möchte. Intern wird dieses vor dem eigentlichen Abarbeiten (="interpretieren") in Bytecode übersetzt. Tatsächlich ist also anzunehmen, dass die Compiler-Komponente an dieser Stelle optimiert und optimierten Bytecode erzeugt, der dann von der eigentlichen Interpreter-Komponente ausgeführt wird.nomnom hat geschrieben:Was für ein Compiler? Interpreter meinst du wohl …
Das war mir beim Schreiben auch bewusst, aber bei Python „vom Compiler“ zu sprechen war mir nicht spezifisch genug …Hyperion hat geschrieben:Vorsicht! Python hat natürlich auch eine Compiler-Komponente - denn der Interpreter liest und versteht lediglich speziellen Bytecode. Man spricht idR. einfach vom Python-"Interpreter", wenn man ein Python-Programm ausführen möchte. Intern wird dieses vor dem eigentlichen Abarbeiten (="interpretieren") in Bytecode übersetzt. Tatsächlich ist also anzunehmen, dass die Compiler-Komponente an dieser Stelle optimiert und optimierten Bytecode erzeugt, der dann von der eigentlichen Interpreter-Komponente ausgeführt wird.
Das habe ich nie behauptet. Allerdings war es mir klar, dass der Interpreter auch erstmal das Programm zu Bytecode kompiliert.bords0 hat geschrieben:@nomnom: Wenn es dir bewusst war, dass das beim Compilieren passiert, warum willst du dann, dass man Interpreter dazu sagt? Versteh ich nicht.