Python source beautifier

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.
Francesco
User
Beiträge: 824
Registriert: Mittwoch 1. Dezember 2004, 12:35
Wohnort: Upper Austria

Beitragvon Francesco » Freitag 2. März 2007, 09:17

Joghurt hat geschrieben:Wie schon geschrieben machen "is" und "==" etwas anderes: Ein schönes Beispiel:

Code: Alles auswählen

>>> a = 50
>>> b = 50
>>> a is b
True
>>> a = 100
>>> b = 100
>>> a is b
False
(hier CPython, in Jython kann das noch ganz anders aussehen)


Würg, das ist ein Hammer. ;)
Wie soll man auf so etwas kommen, ohne sich genau zu informieren?
Intuitiv ist das nicht gerade.
Benutzeravatar
Leonidas
Administrator
Beiträge: 16023
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Beitragvon Leonidas » Freitag 2. März 2007, 15:33

Francesco hat geschrieben:Wie soll man auf so etwas kommen, ohne sich genau zu informieren?
Intuitiv ist das nicht gerade.

Darauf kommt man nicht. Wer testet schon ob eine Instanz der Int-Klasse gleich einer anderen (oder eben der gleichen) Instanz der Int-Klasse ist. Dafür gibt es ``==`` und sonst gibt es mit dieser Optimierung in echten Programmen keinerlei Probleme.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
EyDu
User
Beiträge: 4868
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

Beitragvon EyDu » Freitag 2. März 2007, 15:44

Francesco hat geschrieben:Wie soll man auf so etwas kommen, ohne sich genau zu informieren?

Ich werde ja das Gefühl nicht los, dass einige Menschen versuchen Programiersprachen nur durch ausprobieren zu lernen und mit wenig Untersütztung von Literatur ... Aber wenn man mit solchen Feinheiten nicht in Kontakt kommt ist das ja auch in Ordnung. Immerhin braucht eine Sprache ja auch eine breite Basis.

Francesco hat geschrieben:Intuitiv ist das nicht gerade.

Wenn man den Unterschied von Objektgleichheit und Wertegleichheit kennt schon :D
BlackJack

Beitragvon BlackJack » Freitag 2. März 2007, 21:33

Dem würde ich mich anschliessen. Das ``=`` eine Zuweisung und ``==`` ein Vergleich ist, ist auch nicht intuitiv. Oder ``lambda``. Closures. Klassen. Metaklassen. Sichtbarkeitsbereiche von Namen. Man muss halt Doku lesen wenn man wissen will was für eine Semantik hinter den Syntaxkonstrukten steckt.
Mad-Marty
User
Beiträge: 317
Registriert: Mittwoch 18. Januar 2006, 19:46

Beitragvon Mad-Marty » Mittwoch 7. März 2007, 18:16

weitere anmerkung zu == & is:

Code: Alles auswählen

>>> True is 1
False
>>> True == 1
True
Benutzeravatar
nkoehring
User
Beiträge: 543
Registriert: Mittwoch 7. Februar 2007, 17:37
Wohnort: naehe Halle/Saale
Kontaktdaten:

Beitragvon nkoehring » Mittwoch 7. März 2007, 18:22

Mad-Marty hat geschrieben:weitere anmerkung zu == & is:

Code: Alles auswählen

>>> True is 1
False
>>> True == 1
True
Ja, das funktioniert, weil in diesem Falle nicht auf Gleichheit sondern Gleichwertigkeit geprueft wird. Und True ist genauso wie 1 als Positiv (eben als True) zu werten ;)

Wer ist online?

Mitglieder in diesem Forum: Bing [Bot]