Variable erst später deklarieren

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.
Antworten
Benutzeravatar
wuf
User
Beiträge: 1529
Registriert: Sonntag 8. Juni 2003, 09:50

Hallo Forum-Freunde

Ich habe folgende Frage an Euch:

Gibt es in Python eine Möglichkeit eine
Variable zu verwenden bevor sie deklariert
wurde. In diesem Fall ist die Variable die
Liste mit dem Namen unter_liste.

Zum Beispiel:

Code: Alles auswählen

# Hier wird die Hauptliste deklariert

haupt_liste = [
    133,
    'hallo',
    unter_liste,
    ]

# Hier wird erst die Unter-Liste deklariert

unter_liste = [
    Wert-1,
    Wert-2,
    Wert-x
    ]
Gruss wuf :wink:
Take it easy Mates!
Benutzeravatar
Hobbes Hobson
User
Beiträge: 42
Registriert: Sonntag 9. Dezember 2007, 15:24
Wohnort: Bremen

Warum drehst du das nicht einfach um?


bzw

Code: Alles auswählen

# Hier wird die Hauptliste deklariert
unter_liste = []

haupt_liste = [
    133,
    'hallo',
    unter_liste,
    ]

# Hier wird erst die Unter-Liste deklariert

unter_liste.append(
    Wert-1,
    Wert-2,
    Wert-x
    )

oder was möchtest du erreichen?
mitsuhiko
User
Beiträge: 1790
Registriert: Donnerstag 28. Oktober 2004, 16:33
Wohnort: Graz, Steiermark - Österreich
Kontaktdaten:

Du kannst sowas machen:

Code: Alles auswählen

>>> unter_liste = []
>>> liste = [1, 2, unter_liste, 3]
>>> unter_liste[:] = [4, 5, 6]
>>> liste
[1, 2, [4, 5, 6], 3]
Oder du drehst es einfach um ;-)
TUFKAB – the user formerly known as blackbird
Benutzeravatar
wuf
User
Beiträge: 1529
Registriert: Sonntag 8. Juni 2003, 09:50

Hallo Hobbes Hobson und mitsuhiko

Erstmals besten Dank für Eure sofortigen Antworten!

Ich bin dran mein eigenes auf Tkinter basierendes
Menü-Modul zu erstellen. Es sollte möglichst einfach
und übersichtlich konfigurierbar sein. Auch soll es
möglich sein den einzelnen Menüitems, wenn gewünscht,
ein farbige Grafik-Image hinzuzufügen. Hier geht es
jetzt hauptsächlich darum die einzenen Menüs, Unter-
menüs und Unter-Unter-Menüs zu konfigurieren. Da
möchte ich auf eine Art Top-Down Struktur. Zuerst
Hauptmenu dann die Untermenu zum Hauptmenu und
weiter die Untermenüs zu den Untermenüs des Haupt-
menü. Ihr sieht die Beschreibung des Konfigurier-
ablauf wirk schon verwirrend.

Natürlich sind Eure Ideen auch umsetzbar. Für meine
Anwendung dachte ich nur es gäbe eine Möglichkeit
dem Compiler mittels einer Syntax gesagt zu können,
das der ensprechende Listenname oder Variablenname
erst später angegeben wird. Ich hoffe, dass ich mich
einigermassen verständlich ausdrücken konnte.

Hier etwa meine Vorstellung in einer Pseudokode ähnlichen
Darstellung:

Code: Alles auswählen

#~~ Konfiguration des Hauptmenü
haupt_menu = [{
    menu_name_1: sub_menu_1,
    menu_name_2: sub_menu_2,
    menu_name_3: sub_menu_3,
    }]

#~~ Konfiguration des 1. Untermenüs
#   vom Hauptmenü
sub_menu__1 = [{
    sub_menu_name_1: action,
    sub_menu_name_2: action,
    sub_menu_name_1: sub_menu_a,
    }]

#~~ Konfiguration des 2. Untermenüs
#   vom Hauptmenü
sub_menu__2 = [{
    sub_menu_name_1: action,
    sub_menu_name_2: action,
    sub_menu_name_1: action,
    }]

#~~ Konfiguration des 3. Untermenüs
#   vom Hauptmenü
sub_menu__3 = [{
    sub_menu_name_1: action,
    sub_menu_name_2: action,
    sub_menu_name_3: action,
    }]

#~~ Konfiguration des erweiterten Untermenüs
#   von Untermenu-1
sub_menu_a =  [{
    sub_menu_name_1: action,
    sub_menu_name_2: action,
    sub_menu_name_3: action,
    }]
Gruss wuf :wink: [/quote]
Take it easy Mates!
Pablo Escobar
User
Beiträge: 21
Registriert: Montag 12. November 2007, 15:15
Wohnort: Stuttgart

naja du könntest deine untermenüs auslagern ^^
sprich für jede menü ebene eine datei.py einrichten
und die sachen entsprechend importieren
so würdest du es ein bisserl dezentralisieren
hättest dafür aber eventuell eine große anzahl an dateien
die frage ist nur ob das der feine stil ist und ob das ein
akzeptabler umweg wäre, da es dir bei deinem "Top-Down" Problem
nicht wirklich weiterhilft °_^
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

Wieso klammerst Du Dich an Python-code? Wenn Du das ganze so gestalten willst, wie vorgestellt, dann nimm XML oder nen INI Format und definiere Dir da Deine Struktur! Da spielt die Reihenfolge ja keine Rolle.
BlackJack

Ich wollte nur noch mal anmerken, dass es in Python keine Deklaration gibt [1]_. Code wird von oben nach unten abgearbeitet und wenn ein Name verwendet wird, dann muss der natürlich vorher an ein Objekt gebunden werden.

.. _[1] Bis auf eine sehr Böse™ Ausnahme, die ich hier totschweige, die aber auch nicht zur Lösung des Problems beiträgt.
Benutzeravatar
keppla
User
Beiträge: 483
Registriert: Montag 31. Oktober 2005, 00:12

BlackJack hat geschrieben:[1] Bis auf eine sehr Böse™ Ausnahme, die ich hier totschweige, die aber auch nicht zur Lösung des Problems beiträgt.
Aber du erwartest jetzt nicht, dass wir dich nicht nerven, bis du es verrätst? Argh, Neugier kann so grausam sein...
Vielleicht nur ein Tipp?
BlackJack

Hm, vielleicht kann ich ja vom Thema ablenken, indem ich etwas über meine Weltanschauung sage. Also völlig OT: Ich bin Globalisierungskritiker. ;-)

Edit: Wobei mir gerade noch eine Ausnahme einfällt: Ein ``from __future__ import ...`` kann man auch als Deklaration ansehen.
Benutzeravatar
keppla
User
Beiträge: 483
Registriert: Montag 31. Oktober 2005, 00:12

BlackJack hat geschrieben:Hm, vielleicht kann ich ja vom Thema ablenken, indem ich etwas über meine Weltanschauung sage. Also völlig OT: Ich bin Globalisierungskritiker. ;-)
Ja, ich verstehe deine Kritik ;)
Antworten