summaryrefslogtreecommitdiff
path: root/3 Resources/Python
diff options
context:
space:
mode:
authorJasper Ras <jras@hostnet.nl>2025-01-19 21:14:51 +0100
committerJasper Ras <jras@hostnet.nl>2025-01-19 21:14:51 +0100
commit9642cd7ae24f0ba79ce5647c709b35ae8f06a285 (patch)
treeae25c3b0db7ae4c23186b294c6d000073f085c2d /3 Resources/Python
parent969b96c2531fb986f6c7f21fd544391b439defd7 (diff)
vault backup: 2025-01-19 21:14:51
Diffstat (limited to '3 Resources/Python')
-rw-r--r--3 Resources/Python/Make dataclass dict-able.md15
-rw-r--r--3 Resources/Python/__getitem__ __setitem__.md5
2 files changed, 20 insertions, 0 deletions
diff --git a/3 Resources/Python/Make dataclass dict-able.md b/3 Resources/Python/Make dataclass dict-able.md
new file mode 100644
index 0000000..d8ee02b
--- /dev/null
+++ b/3 Resources/Python/Make dataclass dict-able.md
@@ -0,0 +1,15 @@
+---
+tags:
+ - python
+ - "#how-to"
+references:
+ - https://docs.python.org/3/library/functions.html#vars
+ - https://docs.python.org/3/reference/datamodel.html#object.__iter__
+---
+The `dict` method takes kwargs and creates a dict from that. If we want to pass an object into it the object implement the `__iter__` method.
+We can use `vars` to make that easy:
+```
+def __iter__(self):
+ for k, v in vars(self):
+ yield k, v
+``` \ No newline at end of file
diff --git a/3 Resources/Python/__getitem__ __setitem__.md b/3 Resources/Python/__getitem__ __setitem__.md
new file mode 100644
index 0000000..03c890e
--- /dev/null
+++ b/3 Resources/Python/__getitem__ __setitem__.md
@@ -0,0 +1,5 @@
+---
+tags:
+ - python
+---
+To have a class behave as a dict it's possible to add the two magic methods `__getitem__(self, key)` and `__setitem__(self, key, val)`. \ No newline at end of file