Overloading the tilde operator?

James Stroud jstroud at mbi.ucla.edu
Fri Feb 2 00:49:11 EST 2007


Ben Finney wrote:
> James Stroud <jstroud at mbi.ucla.edu> writes:
> 
> 
>>Peter Otten wrote:
>>
>>>Chris wrote:
>>>
>>>>I am trying to overload the __invert__ operator (~) such that it
>>>>can take a second argument,
>>>
>>>>>>x ~ x
>>>
>>>  File "<stdin>", line 1
>>>    x ~ x
>>>      ^
>>>SyntaxError: invalid syntax
>>
>>Seems an arbitrary limitation. Consider
>>   - x
>>and
>>   x - y
> 
> 
> Both of which are meaningful syntax in Python, hence the Python parser
> accepts them and knows what operations to call on the objects.
> 
> 
>>Which is inconsistent with limiting ~ to a unary operation.
> 
> 
> Which is the only Python-meaningful way to use that operator, and
> translates to an appropriate call on the object.
> 
> The Python runtime parser is designed to parse Python, not some
> arbitrary language that someone chooses to implement in Python.
> 

You haven't addressed why the limitation isn't arbitrary. You have only 
told us what we already know. So your argument, therefore, is not one.

James



More information about the Python-list mailing list