Dynamischem Variablennamen einen Wert zuweisen

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.
alexander255
User
Beiträge: 30
Registriert: Montag 28. April 2008, 13:05

Sonntag 4. Januar 2009, 18:15

Hallo,

Ich weiß nicht vielleicht eine Einsteiger? Egal...
Wie kann man (dynamische) Elemente aus einem Dict nach dem
dictschlüssel = dictwert
lokal in ein Modul einfügen?

HAA Alexander :?:
Benutzeravatar
nkoehring
User
Beiträge: 543
Registriert: Mittwoch 7. Februar 2007, 17:37
Wohnort: naehe Halle/Saale
Kontaktdaten:

Sonntag 4. Januar 2009, 18:19

Sorry, ich wuerde dir gern weiterhelfen, aber kann mit deiner Fragestellung nicht so richtig was anfangen.

Was genau willst du tun?
[url=http://www.python-forum.de/post-86552.html]~ Wahnsinn ist auch nur eine andere Form der Intelligenz ~[/url]
hackerkey://v4sw6CYUShw5pr7Uck3ma3/4u7LNw2/3TXGm5l6+GSOarch/i2e6+t2b9GOen7g5RAPa2XsMr2
DasIch
User
Beiträge: 2465
Registriert: Montag 19. Mai 2008, 04:21
Wohnort: Berlin

Sonntag 4. Januar 2009, 18:19

Das ist i.d.R. eine ganz schlechte Idee. Wieso willst du dass überhaupt machen?
Benutzeravatar
veers
User
Beiträge: 1219
Registriert: Mittwoch 28. Februar 2007, 20:01
Wohnort: Zürich (CH)
Kontaktdaten:

Sonntag 4. Januar 2009, 18:22

Code: Alles auswählen

globals().update({"foo":"bar"})
Aber sei gewarnt, du willst das nicht tun. Wirklich nicht.
[url=http://29a.ch/]My Website - 29a.ch[/url]
"If privacy is outlawed, only outlaws will have privacy." - Phil Zimmermann
alexander255
User
Beiträge: 30
Registriert: Montag 28. April 2008, 13:05

Sonntag 4. Januar 2009, 18:34

Aber sei gewarnt, du willst das nicht tun. Wirklich nicht.
Warum nicht?


Ps: Soll ich's mit locals machen? ;)
DasIch
User
Beiträge: 2465
Registriert: Montag 19. Mai 2008, 04:21
Wohnort: Berlin

Sonntag 4. Januar 2009, 18:39

Der Code wird sehr schwierig zu verstehen bis nicht mehr nachvollziehbar, wenn man dass unnötigerweise einsetzt. Wenn du schreibst wofür du dass brauchst fällt vielleicht jemandem eine bessere Lösung ein.
Benutzeravatar
nkoehring
User
Beiträge: 543
Registriert: Mittwoch 7. Februar 2007, 17:37
Wohnort: naehe Halle/Saale
Kontaktdaten:

Sonntag 4. Januar 2009, 19:05

Ich vermute hier sowieso ein XY-Problem ...
[url=http://www.python-forum.de/post-86552.html]~ Wahnsinn ist auch nur eine andere Form der Intelligenz ~[/url]
hackerkey://v4sw6CYUShw5pr7Uck3ma3/4u7LNw2/3TXGm5l6+GSOarch/i2e6+t2b9GOen7g5RAPa2XsMr2
Darii
User
Beiträge: 1177
Registriert: Donnerstag 29. November 2007, 17:02

Sonntag 4. Januar 2009, 19:20

Wusste gar nicht, dass es dafür einen Namen gibt ^^
audax
User
Beiträge: 830
Registriert: Mittwoch 19. Dezember 2007, 10:38

Sonntag 4. Januar 2009, 19:28

alexander255 hat geschrieben:
Aber sei gewarnt, du willst das nicht tun. Wirklich nicht.
Warum nicht?


Ps: Soll ich's mit locals machen? ;)
mit locals geht das so nicht, siehe Doku.
alexander255
User
Beiträge: 30
Registriert: Montag 28. April 2008, 13:05

Sonntag 4. Januar 2009, 19:35

audax hat geschrieben:
alexander255 hat geschrieben:
Aber sei gewarnt, du willst das nicht tun. Wirklich nicht.
Warum nicht?


Ps: Soll ich's mit locals machen? ;)
mit locals geht das so nicht, siehe Doku.
:oops: stimmt das würde nicht sehr gut funktionieren
Benutzeravatar
cofi
Moderator
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

Sonntag 4. Januar 2009, 19:42

Wenn du uns in deinen Plan einweihen würdest, könnten wir dir Vorschläge machen, wie du das besser löst ;)
alexander255
User
Beiträge: 30
Registriert: Montag 28. April 2008, 13:05

Sonntag 4. Januar 2009, 20:14

Ein Sprachen backend mit Baumstruktur

Code: Alles auswählen

import lang
lang.parse(name, [tools.path.abspath('lang', __name__)])
und dann die strings über lang.[...] aufrufen zB: lang.toolbar.add

Ps: Danke für den update Tipp (seit heute unterstützt das System L10N...:))
DasIch
User
Beiträge: 2465
Registriert: Montag 19. Mai 2008, 04:21
Wohnort: Berlin

Sonntag 4. Januar 2009, 20:29

Sorry aber dass ist imho die dümmste Idee wie man soetwas realisieren kann die ich je gesehen habe. Statt das Rad nach dem Motto "Hauptsache rund" neuzuerfinden wäre es sinnvoller etwas bestehendes wie z.B. Babel zu nutzen.
Benutzeravatar
nkoehring
User
Beiträge: 543
Registriert: Mittwoch 7. Februar 2007, 17:37
Wohnort: naehe Halle/Saale
Kontaktdaten:

Montag 5. Januar 2009, 00:08

Darii hat geschrieben:Wusste gar nicht, dass es dafür einen Namen gibt ^^
Ich habe das auch erst erfahren, als es mir in nem IRC wurde vorgehalten wurde :roll:

Ich hab immer noch nicht verstanden, was der gute Thread-Schreiber eigentlich bezwecken will :(
[url=http://www.python-forum.de/post-86552.html]~ Wahnsinn ist auch nur eine andere Form der Intelligenz ~[/url]
hackerkey://v4sw6CYUShw5pr7Uck3ma3/4u7LNw2/3TXGm5l6+GSOarch/i2e6+t2b9GOen7g5RAPa2XsMr2
alexander255
User
Beiträge: 30
Registriert: Montag 28. April 2008, 13:05

Montag 5. Januar 2009, 00:30

Ich glaube ich sollte mich einmal klar ausdrücken:

Die eigentlichen Sprachstrings stehen in einer XML Datei
Beispiel lang/pycast/de.xlf:

Code: Alles auswählen

<language>
	<group name="tray">
		<value name="tip"></value>
		<value name="Busy">Arbeitet...</value>
		<value name="Tray"></value>
		<group name="menu">
			<value name="show">&Anzeigen</value>
			<value name="showTip">Das Fenster Anzeigen</value>
			<value name="hide">&Verstecken</value>
			<value name="hideTip">Das Fenster Ausblende</value>
		</group>
	</group>
	[b]...[/b]
</language>
und diese Strukturen werden mithilfe [mod]xml.dom.minidom[/mod] in meinem [mod]lang[/mod] eingelesen und stehen dann in Python zur verfügung:

Code: Alles auswählen

>>> import lang
>>> lang.parse(name, [tools.path.abspath('lang', __name__)])
>>> lang.tray.menu
{'show': '&Anzeigen', 'showTip': 'Das Fenster Anzeigen', 'hide': '&Verstecken', 'hideTip': 'Das Fenster Ausblenden'}
>>> lang.tray.menu.show
'&Anzeigen'
Ich hoffe die Beispiele konnten den Sinn (oder unsinn) besser Darstellen

Ps: Glaubt ihr ich erfinde gettext neu? :roll:
Antworten