mirror of
https://github.com/Brandon-Rozek/website.git
synced 2024-11-25 01:26:30 -05:00
Python operator overloads Post
This commit is contained in:
parent
cb6c855f91
commit
959ab3c976
1 changed files with 35 additions and 0 deletions
35
content/blog/pythonoverloads.md
Normal file
35
content/blog/pythonoverloads.md
Normal file
|
@ -0,0 +1,35 @@
|
|||
---
|
||||
title: "Python Operator Overloads"
|
||||
date: 2020-03-13T20:49:28-04:00
|
||||
draft: false
|
||||
tags: []
|
||||
---
|
||||
|
||||
I wrote a [blog post about operator overloads](https://brandonrozek.com/blog/cppoverloads/) in C++. Luckily for Python it is heavily document in what is called the [Python Data Model](https://docs.python.org/3/reference/datamodel.html). Though for the sake of having content, I'll share some of the ones that I heavily use in my classes.
|
||||
|
||||
| Operator | Method |
|
||||
| -------- | ---------------------- |
|
||||
| `+` | `__add__(self, other)` |
|
||||
| `==` | `__eq__(self, other)` |
|
||||
| `len()` | `__len__(self)` |
|
||||
| `str()` | `__str__(self)` |
|
||||
| `hash()` | `__hash__(self)` |
|
||||
|
||||
Example Usage:
|
||||
|
||||
```python
|
||||
class Test:
|
||||
def __init__(self, x):
|
||||
self.x = x
|
||||
def __add__(self, other):
|
||||
return Test(self.x, other.x)
|
||||
def __eq__(self, other):
|
||||
return self.x == other.x
|
||||
def __len__(self):
|
||||
return len(self.x)
|
||||
def __str__(self):
|
||||
return self.x
|
||||
def __hash__(self):
|
||||
return hash(self.x)
|
||||
```
|
||||
|
Loading…
Reference in a new issue