Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

D'un module enfant, appeler le parent ?

1 réponse
Avatar
Méta-MCI
Bonsoir !

D'un module enfant (un module import-é), je cherche à appeler une fonction
du module parent.
Je peux,certes, y arriver avec un "import parent" dans l'enfant. Mais cette
construction (load cyclique) me gène un peu (mais, au pire, je m'en
contenterais).

Quelqu'un aurait-il un truc simple, lisible, pour faire l'équivalent ?

Merci d'avance.

Michel Claveau

1 réponse

Avatar
Pierre Quentel
L'espace de noms global du module parent peut être obtenu dans le
module enfant en utilisant le module intégré inspect :

import inspect
noms_parent = inspect.stack()[0][0].f_back.f_globals

Pour exécuter la fonction test() du module parent dans le module
enfant :

noms_parent['test']()

Mais il vaut mieux éviter cet aller-retour entre parent et enfant,
peut-être en mettant la fonction en question dans un 3ème module
"cousin" importé par les deux ?

Pierre