On 10/1/2010 9:44 AM Emile van Sebille said...
On 10/1/2010 5:56 AM Antoon Pardon said...
Someone provides you with a library of functions that act on sequences.
They rely on the fact that '+' concatenates.
Someone else provides you with a library of functions that act on
numbers. They rely on the fact that '+' provides addition.
But you can do that now -- you just can't have a class that provides
_both_ behaviors.
Well, you can, but that's why you don't...
>>> class Guess:
... def __init__(self,val):
... self.val = val
... def __add__(self,other):
... try:
... other / 1
... return self.val + other
... except:
... return "%s%s" % (self.val,other)
...
>>> c = Guess(7)
>>> c+4
11
>>> c+"4"
'74'
Emile
>>> class Addem:
... def __init__(self,val):
... self.val = val
... def __add__(self,other):
... return self.val + other
...
>>> class Concatem:
... def __init__(self,val):
... self.val = val
... def __add__(self,other):
... return "%s%s" % (self.val,other)
...
>>>
>>> a = Addem(7)
>>> a+4
11
>>>
>>> b = Concatem(7)
>>> b+4
'74'
Emile
--
http://mail.python.org/mailman/listinfo/python-list