[Python-de] Python als Makroersatz, und was zum Lachen
Gerhard Häring
gh at ghaering.de
Mit Jul 30 18:39:39 EDT 2003
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.
> Wäre es möglich, sich in den Name Lookup der Variablen zu hängen, so daß man
> z.B. bei Undeclared Identifier die Möglichkeit hat, sich 'ne neue
> anzuschaffen?
>
> Zum lachen: Guckst du Google, suche nach Q246772, klickst du auf die
> MSDN-Seite.
> HOWTO: Retrieve and Set the Default Printer in Windows [...]
Argh, dann lieber doch "import win32print" ;-)
-- Gerhard