mirror of
https://github.com/jbranchaud/til
synced 2026-01-02 22:58:01 +00:00
Add Dunder Methods as a Python TIL
This commit is contained in:
@@ -10,7 +10,7 @@ pairing with smart people at Hashrocket.
|
||||
|
||||
For a steady stream of TILs, [sign up for my newsletter](https://crafty-builder-6996.ck.page/e169c61186).
|
||||
|
||||
_1504 TILs and counting..._
|
||||
_1505 TILs and counting..._
|
||||
|
||||
---
|
||||
|
||||
@@ -887,6 +887,7 @@ _1504 TILs and counting..._
|
||||
|
||||
- [Access Instance Variables](python/access-instance-variables.md)
|
||||
- [Create A Dummy DataFrame In Pandas](python/create-a-dummy-dataframe-in-pandas.md)
|
||||
- [Dunder Methods](python/dunder-methods.md)
|
||||
- [Store And Access Immutable Data In A Tuple](python/store-and-access-immutable-data-in-a-tuple.md)
|
||||
- [Test A Function With Pytest](python/test-a-function-with-pytest.md)
|
||||
- [Use pipx To Install End User Apps](python/use-pipx-to-install-end-user-apps.md)
|
||||
|
||||
22
python/dunder-methods.md
Normal file
22
python/dunder-methods.md
Normal file
@@ -0,0 +1,22 @@
|
||||
# Dunder Methods
|
||||
|
||||
Python has all kinds of special, or rather, _magic_ methods that allow for
|
||||
customizing all kinds of class behavior. There is `__init__()`, `__bool__()`,
|
||||
and so many others.
|
||||
|
||||
The thing they all have in common is that their names are wrapped in _double
|
||||
underscores_. This is why they are called _dunder methods_.
|
||||
|
||||
Some of these are used every single day, like the `__init__()` method for
|
||||
defining how a class should create an object. Others, used from time to time,
|
||||
are for overriding how comparisons or conversions happen. E.g. you may want to
|
||||
override `__bool__()` or `__len__()` to customize the truthiness of a custom
|
||||
class.
|
||||
|
||||
There are so many others, ones you probably haven't even heard of. To see a
|
||||
full listing, check out this [cheat sheet of every dunder
|
||||
method](https://www.pythonmorsels.com/every-dunder-method/#cheat-sheet).
|
||||
|
||||
Note: these are not to be confused with _dunder attributes_ which are things
|
||||
like `__name__`, `__file__`, and `__version__` which correspond to a value that
|
||||
you can access in a specific context rather than behavior to override.
|
||||
Reference in New Issue
Block a user