Seite 1 von 1

unveränderbare Variablen?

Verfasst: Mittwoch 26. Juli 2006, 08:48
von Lambert
Hallo zusammen,

Gibt es in Python die Möglichkeit eine Variable unveränderbar zu machen? Also ihr am Anfang z.B. einen Wert zuweisen der dannach nicht mehr überschrieben werden kann.

Verfasst: Mittwoch 26. Juli 2006, 09:02
von BlackJack
Nein.

Konstanten werden in den meisten Sprachen dadurch gekennzeichnet das sie komplett in Grossbuchstaben geschrieben werden. Das ist auch in Python übliche Praxis.

Verfasst: Mittwoch 26. Juli 2006, 09:14
von Tafkadasom2k5
...ich glaube, dass Tuples die einzigen "unveränderlichen" Variablen darstellen.

Wäre vielleicht eine Möglichkeit zum Ausweichen...

Verfasst: Mittwoch 26. Juli 2006, 09:26
von Lambert
Tupel helfen mir nicht. Die sind zwar nicht veränderbar, aber überschreibbar.

Verfasst: Mittwoch 26. Juli 2006, 10:07
von BlackJack
Wozu brauchst Du das überhaupt. Wenn der Name in Grossbuchstaben geschrieben ist, dann reicht das im Allgemeinen aus.

Verfasst: Mittwoch 26. Juli 2006, 10:20
von Lambert
Ich wollte mich nur vor mir selbst bewaren. Mir war gerade entfallen das Python ja auf die Groß/KleinSchreibung achtet. Dann sollte es sogar mir möglich sein die Variable nicht aus versehen zu überschreiben.

Verfasst: Mittwoch 26. Juli 2006, 12:11
von Leonidas
Lambert hat geschrieben:Mir war gerade entfallen das Python ja auf die Groß/KleinSchreibung achtet.
Viele Sprachen tun das, wenn nicht gar die meisten. Auf die schnelle fällt mir nur Basic ein, dem das egal ist.

Verfasst: Donnerstag 27. Juli 2006, 00:06
von Masaru
Lambert hat geschrieben:Ich wollte mich nur vor mir selbst bewaren. Mir war gerade entfallen das Python ja auf die Groß/KleinSchreibung achtet. Dann sollte es sogar mir möglich sein die Variable nicht aus versehen zu überschreiben.
Hum ... vor eigenen Fehlern ist man nie gefeit und 100% sicher gehen kannste eh nicht ;).

Man kann lediglich versuchen sich Programmiertechniken sowie -regeln und Tools zur Hilfe zu nehmen, die einem vor versteckten folgeschweren Fehlern rechtzeitig warnen oder gar verhindern.

Z.B.
- Entwicklungsumgebung mit einem Lint ausstatten (z.B. pylint, lässt sicht häufig auch in Editoren oder Workbenches integrieren)
- Build-Tools verwenden (z.B. Ant oder gar PyAnt, Scons, Maven)
- Versionskontrollsysteme verwenden (im Trend Subversion)
- keine verschiedenen Style-Mixes (in Bezug z.B. auf Syntax, Programmierstil, etc.), hier ist finde ich auch der Style Guide for Python Code (PEP 8 ) - von Guido van Rossum - ganz hilfreich
- Unittests (u./o. Doctests) zu den wichtigsten Projektkomponenten schreiben
- etc. ;)

Gruß
>>Masaru<<

Verfasst: Donnerstag 27. Juli 2006, 19:36
von birkenfeld
Tafkadasom2k5 hat geschrieben:...ich glaube, dass Tuples die einzigen "unveränderlichen" Variablen darstellen.

Wäre vielleicht eine Möglichkeit zum Ausweichen...
Hier sollte man aufpassen.

Bei Python von "Variablen" zu sprechen, ist an sich schon problematisch. Es gibt im Prinzip einerseits Namen und andererseits Objekte. Namen werden mit "=" mit Objekten verknüpft. Das erklärt auch, warum es keine "Konstanten" gibt: Die Objekte an sich können änderbar (Listen etc.) oder nicht änderbar (Ints, Strings, Tupel etc.) sein, was einen aber nie daran hindert, Namen, die auf diese zeigen, neu zu binden.