Automatically generating arithmetic operations for a subclass

Arnaud Delobelle arnodel at googlemail.com
Tue Apr 14 09:08:47 EDT 2009


"andrew cooke" <andrew at acooke.org> writes:

> Arnaud Delobelle wrote:
>> I do this:
>>
>> binops = ['add', 'sub', 'mul', 'div', 'radd', 'rsub'] # etc
>> unops = ['neg', 'abs', invert'] # etc
>>
>> binop_meth = """
>> def __%s__(self, other):
>>     return type(self)(int.__%s__(self, other))
>> """
>>
>> unop_meth = """
>> def __%s__(self):
>>     return type(self)(int.__%s__(self))
>> """
>>
>> class MyInt(int):
>>       for op in binops:
>>           exec binop_meth % (op, op)
>>       for op in unops:
>>           exec unop_meth % (op, op)
>>       del op
>
> what's the "del" for?

Without it, 'op' would end up as a class attribute.

> curious,
> andrew

-- 
Arnaud



More information about the Python-list mailing list