En Python, j'aime bien définir des constantes sur mes classes puis hériter ces classes en redéfinissant les constantes. Le problème c'est de trouver une manière élégante d'étendre ces constantes (par exemple rajouter des clés dans un dictionnaire).

Un bout de code vaut toujours mieux que du charabia pompeux:

class A(object):
    CONST = {
        "foo": "bar",
    }

class B(A):
    CONST = dict(A.CONST.items() + {
        "bar": "foo",
    }.items())

>>> B.CONST
{'foo': 'bar', 'bar': 'foo'}

Il y a bien sûr une manière de faire plus propre avec des metaclass, mais je trouve cette solution plus simple et plus lisible.

Tags: python
comments powered by Disqus