Title: Theory / Important / CS / Programming / Python

Name: a descriptor
Definition: an object attribute with “binding behavior”, one whose attribute access has been overridden by methods in the descriptor protocol: __get__(), __set__(), and __delete__().
Page: https://docs.python.org/3/reference/datamodel.html#invoking-descriptors
Chapter: 3
Section: 3.2.2
Extra: Remaining not understood

Name: Python
Creator: Guido van Rossum
Other fields (not shown on cards):
Extension of code file: py
Mutability: Everything
Successor of: ABC programming language
Interpreter: cpython, python, ipython, PyPy (just in time compiler)
Compiler: Cython (Reference implementation),
Object-oriented: yes
Block creation: indentation
Call paradigm: Call by value
Variable typing: Gradual
Eval: Yes
Value typing: Runtime
Class: First-class citizenship
Goal: Fun and simple to use
Mainteneur: Python Software Foundation
Storage management: Garbage collected
Tail call optimization: No
Integral arithmetic: Arbitrary precision
Floating aritmetic: Rational and arbitrary precision
In stack: ?
Inheritance: Multiple
Polymorphism: Yes (because no typing)
Compiled file extension: pyc
Lauching: all code of the launched module and all imported module
Macro: no
Package manager: pip
String encoding: unicode
Official document: pep
Quality checker: MyPy for typing
Documentation: Pydoc and Sphinx
Design by contract: extension ?
Logic programming: Extension ?