ho cercato di definire una classe e ignorare l'operatore tilde:Esiste la possibilità di sovrascrivere un operatore unario con uno binario in Python?
class foo:
def __invert__(self, other)
return 1232 # a random number , just as test
Poi definendolo come:
>>> f = foo()
>>> g = foo()
>>> f ~ g
File "<input>", line 1
f ~ g
^
SyntaxError: invalid syntax
Possiamo sostituire l'operatore tilde con uno binario in modo che possiamo fare un'operazione come f ~ g
senza generare un errore di sintassi.
No, non c'è. –
Non senza modificare Python stesso, no (anche se puoi farlo se lo desideri - vedi ad esempio http://stackoverflow.com/questions/214881/can-you-add-new-statements-to-pythons-syntax per un'introduzione). – jonrsharpe
@jonrsharpe: e anche allora, come sarebbe il numero di operandi modificati * in fase di esecuzione *? La tua unica opzione sarebbe quella di cambiare completamente l'operatore '~', non puoi scegliere tra 1 o 2 operandi in fase di esecuzione. –