Ich habe versucht, eine Klasse und überschreiben Sie die Tilde Operator zu definieren: es mag AufrufGibt es eine Möglichkeit, in Python einen unären Operator mit einer binären Eins zu überschreiben?
class foo:
def __invert__(self, other)
return 1232 # a random number , just as test
Dann:
>>> f = foo()
>>> g = foo()
>>> f ~ g
File "<input>", line 1
f ~ g
^
SyntaxError: invalid syntax
Können wir den Tilde-Betreiber mit einer binären Eins ersetzen, so können wir eine Operation tun, wie f ~ g
ohne einen Syntaxfehler zu verursachen.
Nein, gibt es nicht. –
Nicht ohne Python selbst zu modifizieren, nein (obwohl du das tun kannst, wenn du willst - siehe zB http://stackoverflow.com/questions/214881/can-you-add-new-statements-to-pythons-syntax für eine Einführung). – jonrsharpe
@jonrsharpe: und wie würde dann die Anzahl der Operanden * zur Laufzeit * geändert? Ihre einzige Option wäre, den Operator '~' vollständig zu ändern, Sie können zur Laufzeit nicht zwischen 1 oder 2 Operanden wählen. –