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

Reply via email to