Was bietet deine Implementation was gettext nicht bietet (vorallem besser) bietet?Ps: Glaubt ihr ich erfinde gettext neu?
Dynamischem Variablennamen einen Wert zuweisen
xml.dom.minidom ist wohl eines der abartigsten Dinge die die stdlib zu bieten hat, nimm ElementTree glaub mir du willst das wirklich.
-
- User
- Beiträge: 30
- Registriert: Montag 28. April 2008, 13:05
Ich weiß, ich weiß, aber leider habe ich von ElementTree erst erfahren als es zu spät war (sprich der reader selbst war [fast] fertig und ich will nicht alles von Grund auf neu machen...)DasIch hat geschrieben:xml.dom.minidom ist wohl eines der abartigsten Dinge die die stdlib zu bieten hat, nimm ElementTree glaub mir du willst das wirklich.
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Nein, gettext ist bei all seinen Macken nicht halb so schlimm.alexander255 hat geschrieben:Ps: Glaubt ihr ich erfinde gettext neu?
Warum:
- getttext ist ein Standardformat, zwar kein sonderlich gutes, aber es ist populär, vor allem im Linux-Bereich und Python bietet ein Modul dafür
- für gettext gibt es gute Software
- die gettext-Integration in Python fühlt sich nicht an wie ein PHP-Designpattern
- deine Lösung unterstützt keinerlei Plural. Weder einfachen Plural noch besondere Pluralarten, die einige Sprachen so haben
- deine Lösung nutzt XML, was in dem Fall hauptsächlich überflüssig ist, keinen Vorteil bringt
- deine Lösung nutzt DOM, was ebenso unnütz ist, insbesondere da es ElementTree in der Stdlib gibt
Zuletzt geändert von Leonidas am Montag 5. Januar 2009, 11:20, insgesamt 1-mal geändert.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
@Leonidas: Ich schiebe es mal auf die Uhrzeit aber Deine Liste ist auf den ersten Blick etwas verwirrend. Bei den Punkten, die mit `es …` beginnen ändert das `es` seine Bedeutung von "Dein Eigenbau" zu "gettext".
Auf die Gefahr hin, dass ich mich mit dieser Lösung wieder arg unbeliebt mache:alexander255 hat geschrieben: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
Code: Alles auswählen
>>> dic = {"a":1, "b":2}
>>> for i in dic:
exec("%s = dic[%s]" % (i, repr(i)))
>>> a
1
>>> b
2
MFG HerrHagen
- cofi
- Python-Forum Veteran
- Beiträge: 4432
- Registriert: Sonntag 30. März 2008, 04:16
- Wohnort: RGFybXN0YWR0
Nachdem dein Grundansatz ziemlich umständlich ist: Was spricht eigentlich gegen die Nutzung des Dicts statt normaler Namen? Oder andersrum: Welchen Vorteil hast du, wenn du deinen globalen Namespace mit Variablen "verschmutzt", die dann eventuell andere überschreiben.
Wenn das nicht geht, solltest du eventuell doch auf gettext umsteigen.
Wenn das nicht geht, solltest du eventuell doch auf gettext umsteigen.
Nennt sich Refactoring und erleichtert dir in Zukunft das Lebensprich der reader selbst war [fast] fertig und ich will nicht alles von Grund auf neu machen...
Vielleicht sowas hier:
Code: Alles auswählen
class lookup:
def __init__(self, node):
self.node = node
def __getattr__(self, attr):
n = self.findByName(self.node, attr)
if n.nodeType = n.TEXT_NODE:
return n.data
else:
return lookup(n)
def findByName(self, name).
# left as exercise :)
pass
http://www.felix-benner.com
Nö, es wird ja nur der Schlüssel als str übergeben:Leonidas hat geschrieben:Das fällt spätestens bei eigenen Objekten auf die Nase, denn ``<__main__.An object 0x...>`` ist keine gültige Python-Syntax.
Code: Alles auswählen
>>> class test:
def __init__(self, a):
self.a = a
>>> dic = {"a":1, "b":2, "c":test(3)}
>>> for i in dic:
exec("%s = dic[%s]" % (i, repr(i)))
>>> c
<__main__.test instance at 0x00BB5FA8>
>>> c.a
3
-
- User
- Beiträge: 30
- Registriert: Montag 28. April 2008, 13:05
Das ganze ließe sich auch so lösen:
Oder so ähnlich lösen
Alexander
Code: Alles auswählen
import msg
lang = msg.parse(name, [tools.path.abspath('lang', __name__)])
Alexander
-
- User
- Beiträge: 30
- Registriert: Montag 28. April 2008, 13:05
Ihr hattet recht mit elementtree.ElementTree ich habe schon ein mindestens die hälfte der XML-Geschichten implementiert...toll
Leonidas hat geschrieben:
- die gettext-Integration in Python fühlt sich nicht an wie ein PHP-Designpattern
- deine Lösung unterstützt keinerlei Plural. Weder einfachen Plural noch besondere Pluralarten, die einige Sprachen so haben
- deine Lösung nutzt XML, was in dem Fall hauptsächlich überflüssig ist, keinen Vorteil bringt
- deine Lösung nutzt DOM, was ebenso unnütz ist, insbesondere da es ElementTree in der Stdlib gibtlist
- Meinst du mit PHP-Designpattern so etwas wie <? echo blog("feed_list") ?> ?
- Stimmt...kein Plural, mach ich gleich (Kannst du mir einen besonderen Plural nennen?)
- Ich bin gerade dabei eine ElementTree implementation zu schreiben...s.o.
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Mit Üblen Designpatterns meinte ich irgendwelche Hacks an locals, globals, irgendwelche seltsamen Stringoperationen nur um sich um sauberen Code herumzuschummeln.alexander255 hat geschrieben:
- Meinst du mit PHP-Designpattern so etwas wie <? echo blog("feed_list") ?> ?
- Stimmt...kein Plural, mach ich gleich (Kannst du mir einen besonderen Plural nennen?)
Und besondereren Plural gibt es etwa bei Sprachen die mehr als eine Pluralform haben. Als Beispiel etwa Singular bei 1 Ding, Plural bei 2-4 Dingen und ab 5 Dingen eine andere Pluralform (dies wird, soweit ich das verstehe, von gettext unterstützt). Oder sie haben einen Dual, Trial und dann noch den Paukal. Oder Sprachen die beim Plural unterscheiden ob der Sprecher sich mit aufnimmt in den Plural oder sich davon ausnimmt.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice