In python 3.9, dictionaries gained combine |
and update |=
operators. Is there a dunder/magic method which will enable this to be used for other classes? I've tried looking in the python source but found it a bit bewildering.
Dictionary Merge & Update OperatorsMerge ( | ) and update ( |= ) operators have been added to the built-in dict class.
__gt__(y) to obtain a return value when comparing two objects using x > y . The return value can be any data type because any value can automatically converted to a Boolean by using the bool() built-in function. If the __gt__() method is not defined, Python will raise a TypeError .
__sub__(self, other) method returns a new object that represents the difference of two objects. It implements the subtraction operator - in Python. We call this a “Dunder Method” for “Double Underscore Method” (also called “magic method”).
Yes, |
and |=
correspond to __or__
and __ior__
.
Don't look at the python source code, look at the documentation. In particular, the data model.
See here
And note, this isn't specific to python 3.9.
Yes, the method for |
is __or__
and the method for |=
is __ior__
. You can see an (approximate) Python implementation here in PEP 584.
def __or__(self, other):
if not isinstance(other, dict):
return NotImplemented
new = dict(self)
new.update(other)
return new
def __ior__(self, other):
dict.update(self, other)
return self
No need to dig through the source. It's clearly documented as __or__
and __ior__
. https://docs.python.org/3/reference/datamodel.html is the relevant documentation.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With