unveränderbare Variablen?

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.
Lambert
User
Beiträge: 40
Registriert: Montag 20. Februar 2006, 09:32

unveränderbare Variablen?

Beitragvon Lambert » Mittwoch 26. Juli 2006, 08:48

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

Beitragvon BlackJack » Mittwoch 26. Juli 2006, 09:02

Nein.

Konstanten werden in den meisten Sprachen dadurch gekennzeichnet das sie komplett in Grossbuchstaben geschrieben werden. Das ist auch in Python übliche Praxis.
Tafkadasom2k5
User
Beiträge: 24
Registriert: Dienstag 25. Juli 2006, 09:32

Beitragvon Tafkadasom2k5 » Mittwoch 26. Juli 2006, 09:14

...ich glaube, dass Tuples die einzigen "unveränderlichen" Variablen darstellen.

Wäre vielleicht eine Möglichkeit zum Ausweichen...
Ich kam, ich sah, und ich ging einfach wieder...

Gott: "Nietzsche ist tot"
Lambert
User
Beiträge: 40
Registriert: Montag 20. Februar 2006, 09:32

Beitragvon Lambert » Mittwoch 26. Juli 2006, 09:26

Tupel helfen mir nicht. Die sind zwar nicht veränderbar, aber überschreibbar.
BlackJack

Beitragvon BlackJack » Mittwoch 26. Juli 2006, 10:07

Wozu brauchst Du das überhaupt. Wenn der Name in Grossbuchstaben geschrieben ist, dann reicht das im Allgemeinen aus.
Lambert
User
Beiträge: 40
Registriert: Montag 20. Februar 2006, 09:32

Beitragvon Lambert » Mittwoch 26. Juli 2006, 10:20

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.
Benutzeravatar
Leonidas
Administrator
Beiträge: 16023
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Beitragvon Leonidas » Mittwoch 26. Juli 2006, 12:11

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.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
Benutzeravatar
Masaru
User
Beiträge: 425
Registriert: Mittwoch 4. August 2004, 22:17

Beitragvon Masaru » Donnerstag 27. Juli 2006, 00:06

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<<
Benutzeravatar
birkenfeld
Python-Forum Veteran
Beiträge: 1603
Registriert: Montag 20. März 2006, 15:29
Wohnort: Die aufstrebende Universitätsstadt bei München

Beitragvon birkenfeld » Donnerstag 27. Juli 2006, 19:36

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.

Wer ist online?

Mitglieder in diesem Forum: Bing [Bot]