This content originally appeared on flaviocopes.com and was authored by flaviocopes.com
Operator overloading is an advanced technique we can use to make classes comparable and to make them work with Python operators.
Let’s take a class Dog:
class Dog:
# the Dog class
def __init__(self, name, age):
self.name = name
self.age = age
Let’s create 2 Dog objects:
roger = Dog('Roger', 8)
syd = Dog('Syd', 7)
We can use operator overloading to add a way to compare those 2 objects, based on the age
property:
class Dog:
# the Dog class
def __init__(self, name, age):
self.name = name
self.age = age
def __gt__(self, other):
return True if self.age > other.age else False
Now if you try running print(roger > syd)
you will get the result True
.
In the same way we defined __gt__()
(which means greater than), we can define the following methods:
__eq__()
to check for equality__lt__()
to check if an object should be considered lower than another with the<
operator__le__()
for lower or equal (<=
)__ge__()
for greater or equal (>=
)__ne__()
for not equal (!=
)
Then you have methods to interoperate with arithmetic operations:
__add__()
respond to the+
operator__sub__()
respond to the–
operator__mul__()
respond to the*
operator__truediv__()
respond to the/
operator__floordiv__()
respond to the//
operator__mod__()
respond to the%
operator__pow__()
respond to the**
operator__rshift__()
respond to the>>
operator__lshift__()
respond to the<<
operator__and__()
respond to the&
operator__or__()
respond to the|
operator__xor__()
respond to the^
operator
There are a few more methods to work with other operators, but you got the idea.
This content originally appeared on flaviocopes.com and was authored by flaviocopes.com
flaviocopes.com | Sciencx (2021-02-21T05:00:00+00:00) Python Operator Overloading. Retrieved from https://www.scien.cx/2021/02/21/python-operator-overloading/
Please log in to upload a file.
There are no updates yet.
Click the Upload button above to add an update.