
Gerhard Häring wrote:
Gerson Kurz wrote:
Gegeben einen C-Header, der aus Zeug wie dem folgenden besteht:
DECLARE_STRING(IDS_XYZ_STATUS_BUSY, "Busy") DECLARE_STRING(IDS_XYZ_STATUS_COVER_OPEN, "Cover open") DECLARE_STRING(IDS_XYZ_STATUS_DOOR_OPEN, "Door open") ....(usw, viele hundert Zeilen lang)...
möchte ich eine Datei erzeugen, die so ausschaut:
[IDS_XYZ_STATUS_BUSY] "Busy"
[IDS_XYZ_STATUS_COVER_OPEN] "Cover open"
[IDS_XYZ_STATUS_DOOR_OPEN] "Door open"...
Dachte ich mir, kopierst du den Auszug in ein Pythonscript und schreibst
def DECLARE_STRING(irgendwas, blabla): [...]
Nun heisst es ja immer, mit Python könne man alles Makromäßige umsetzen - wie aber mache ich sowas? Ich will ja praktisch auf der Fliege ("on the fly"), neue Variablen erzeugen.
__getattr__/__setattr__ geht leider (oder zum Glück) auf Modulebene nicht, nur auf Klassenebene.
import bla bla.__dict__["test"] = "bla" print bla. bla.__class__ bla.__file__ bla.__name__ bla.__setattr__ bla.__delattr__ bla.__getattribute__ bla.__new__ bla.__str__ bla.__dict__ bla.__hash__ bla.__reduce__ bla.test bla.__doc__ bla.__init__ bla.__repr__ print bla. bla.printattr() test printattr __builtins__ __name__ __file__ __doc__
printattrs gibt einfach globals() aus. globals()[var] = value ? globals()["test"] = "bla" grüsse daniel _______________________________________________ Python-de maillist - Python-de@python.net http://python.net/mailman/listinfo/python-de