[Python-ideas] Operator as first class citizens -- like in scala -- or yet another new operator?
Rhodri James
rhodri at kynesim.co.uk
Wed May 22 08:54:06 EDT 2019
On 22/05/2019 13:29, Yanghao Hua wrote:
> Problem is python do not allow you to define new operators in the
> language itself, except those pre-defined you can modify their
> behavior. Even in case, if python would have been able to allow me to
> redefine the behavior of "=", e.g. by checking if the left hand side
> has a method (e.g. __assign__) to override the default behavior of the
> equal sign, I would be 100% happy already :) I have looked into all
> the existing operators that python supports which looks like an
> "assignment", none has been fallen in love with me. The example in
> Chisel w/ Scala is: they defined quite a few operators: ":=" for
> signal assignment, "<>" for bulk signal connections etc. And you can
> keep inventing new operators with which your design can look really
> elegant.
A note of caution: your design can look really elegant *as long as you
know what your new operators mean*. If you don't, it's looks like
incomprehensible noise. I have had far too many bad experiences with
"clever" C++ with redefined operators to assume that "elegant" and
"obvious" go hand in hand.
If you really must prat around with redefining assignment, make the
relevant attribute a property.
--
Rhodri James *-* Kynesim Ltd
More information about the Python-ideas
mailing list