Weekly backup.

This commit is contained in:
2022-06-04 12:57:39 +02:00
parent e552583393
commit 015b896f65
68 changed files with 3530 additions and 27 deletions

View File

@@ -0,0 +1,31 @@
:PROPERTIES:
:ID: e9a0cb94-ee68-4dfd-9013-c83ce2a18481
:mtime: 20220516155419
:ctime: 20220516155011
:END:
#+title: Ordre de résolution des attributs
* Introduction
#+BEGIN_SRC python :results output
class A:
answer = 42
def __init__(self):
self.answer = 21
self.__add__ = lambda x, y: x.answer + y
def __add__(self, y):
return self.answer - y
print(f"{A() + 5 = }")
#+END_SRC
#+RESULTS:
: A() + 5 = 16
* Explication
Afin de résoudre les noms, Python cherche au niveau de l'instance, puis à celui de la classe et enfin à celui des
classes parentes, sauf pour les /dunder methods/ pour lesquelles Python cherche directement au niveau de la classe.
* Référence
* [[https://medium.com/@saint_sdmn/10-hardest-python-questions-98986c8cd309][10 Hardest Python Questions - Medium]]