No macros in Python
Mel Wilson
mwilson at the-wire.com
Sun Dec 15 18:56:31 EST 2002
More information about the Python-list mailing list
Sun Dec 15 18:56:31 EST 2002
- Previous message (by thread): No macros in Python
- Next message (by thread): No macros in Python
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
In article <3DFCDAB5.5FBA7730 at engcorp.com>, Peter Hansen <peter at engcorp.com> wrote: >Mike Meyer wrote: >> >> Python doesn't have macros. On the other hand, looking at the world >> through OO glasses rather than S-expression glasses means you don't >> need macros as often. But the topic comes up at irregular intervals, >> so someone may eventually come up with a way of doing macros in Python >> that is right - at which point it'll be added. > >I haven't heard this expressed as a disadvantage very often, perhaps >not before in this group since I've been reading it. >In what way would macros (as I understand them... from C for example) >improve Python, other than possibly a small improvement in performance? If you must have such a thing as C macros, it's available. I tried this as a way of simplifying the creation of a lot of edit boxes with wxPython: new_edit_box_macro = """\ hs = wxBoxSizer (wxHORIZONTAL) hs.Add (wxStaticText (self, -1, '%(label)s', wxDefaultPosition, labelsize) self.%(field)s_ctrl = wxTextCtrl (self, -1, '', wxDefaultPosition) hs.Add (self, %(field)s_ctrl, 1) vs.Add (hs, 0, wxGROW)""" exec (new_edit_box_macro % {'label':'Key No.', 'field':'person_id'}) exec (new_edit_box_macro % {'label':'First Name', 'field':'fname'}) exec (new_edit_box_macro % {'label':'Last Name', 'field':'lname'}) and so on. A function would look cleaner, except that local values like `vs` and `labelsize` would have to be explicitely passed in (in the older Python versions that I use.) I gather that exec runs its code in the local name space. Regards. Mel.
- Previous message (by thread): No macros in Python
- Next message (by thread): No macros in Python
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Python-list mailing list