In article <[EMAIL PROTECTED]>,
Bruno Desthuilliers  <[EMAIL PROTECTED]> wrote:
>Mathieu Prevot a écrit :
>> 2008/9/4 Chris Rebert <[EMAIL PROTECTED]>:
>
>(snip)
>
>>> You're looking for the setattr() built-in function. In this exact case:
>>>    setattr(a, arg, new_value)
>>>
>>> This is probably covered in the Python tutorial, please read it.
>>>
>>> Regards,
>>> Chris
>> 
>> Indeed.
>> 
>> I'll use:
>> a.__setattr__(height, new_value)
>
>Please don't. Use the generic setattr() function instead. This holds for 
>any __magic__ method : they are *implementation* for operators and 
>generic functions  - which you can think of as operators with a function 
>syntax -, and are not meant to be called directly. You wouldn't write 
>something like 2.__add__(3), would you ?
>

Along with the good advice the usual suspects have given,
my intuition is that there's an even better implementation
that doesn't setattr() at all.  While it's impossible to
know, of course, because we don't have the original poster's
true requirements, I conjecture that, rather than "to link
this [user-supplied] word to a class variable", what will
serve him best is to regard the user text as an index into
a class dictionary.
--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to