:PROPERTIES:
:ID:       279b5e79-6918-432c-85fa-2fbefc06619a
:mtime:    20220516160109
:ctime:    20220516155708
:END:
#+title: Attribut imag des types numériques

* Introduction
#+BEGIN_SRC python :results output
ret = sum([
    el.imag 
    for el in [
        0, 5, 10e9, float('inf'), float('nan')
    ]
])
print(f"{ret =}")
#+END_SRC

#+RESULTS:
: ret =0.0

* Explication
Le code précédent ne génère pas d'/AttributeError/ car tous les types numériques (/int/, /real/ et /float/) supportent
les attributs /real/ (partie réelle) et /imag/ (partie imaginaire), /NaN/ et /Infinity/ inclus.

* Références
 * [[https://medium.com/@saint_sdmn/10-hardest-python-questions-98986c8cd309][10 Hardest Python Questions - Medium]]
 * [[https://docs.python.org/fr/3/library/numbers.html][Numbers - Classes de base abstraites numériques]]
