logo Debian Debian Debian-France Debian-Facile Debian-fr.org Forum-Debian.fr Debian ? Communautés logo inclusivité

Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

Vous n'êtes pas identifié(e).

#1 06-10-2024 13:50:04

Tawal
Membre
Distrib. : Debian Stable à jour
Noyau : amd64
(G)UI : Xfce
Inscription : 25-02-2021

[Python 3] Imports nécessaires à mes Modules personnels [Résolu]

Hello,

Toujours débutant avec Python tongue

J'ai dans mon PYTHONPATH le bon chemin de mes modules personnels (modification du ~/.bashrc).
J'ai donc mon environnement virtuel que j'active.

Mon module personnel a besoin d'import pour fonctionner.
Par exemple, un lot de fonctions utilisant le module officiel re.

Et mon script aura aussi besoin du module officiel re ainsi que mon module personnel pour fonctionner.

Comment importer tout ça correctement ?

J'ai une solution mais elle demande de se rappeler quels modules officiels chaque module personnel importe :

Exemple sans utilité réelle.
Mon module :

import re

def fonction_reg_compile(reg):
   return re.compile(reg)


Mon script :

from Mon_Module import *
regex = '^$'
valid = fonction_reg_compile(regex)

regex2 = re.compile(r'^\d+$')

Dernière modification par Tawal (07-10-2024 23:40:32)


Comme la science n'est pas infuse, elle se diffuse.
Useless Use of Cat Award
Filenames and Pathnames in Shell: How to do it Correctly
À chaque problème sa solution, à chaque solution son moyen, si pas de moyen, toujours le problème !

Hors ligne

#2 06-10-2024 20:57:21

Philou92
Adhérent(e)
Lieu : Hauts de Seine
Distrib. : Debian bookworm
Noyau : Linux 6.1.0-21-amd64
(G)UI : LightDM et Xfce4.18
Inscription : 29-04-2015

Re : [Python 3] Imports nécessaires à mes Modules personnels [Résolu]

Personnellement tous mes modules importent ce dont ils ont besoin. Il n’y a pas de mauvaise raison pour ajouter une ligne « import re » dans ton fichier Mon_script.py. Cela n’a aucun coût puisque python ne chargera pas deux fois le même module (c’est le dernier chargé qui sera utilisé).

Sinon, sauf si tu sais ce que tu fais, j’éviterais de faire un « import * » sur un module. Cela importe toutes les fonctions et variables dans l’espace de nommage et peut conduire à des collisions avec celles d’autres modules y compris le principal.
J’écrirais Mon_script de la façon suivante :

import re
import Mon_Module
regex = '^$'
valid = Mon_Module.fonction_reg_compile(regex)

regex2 = re.compile(r'^\d+$')



Cela facilite de mon point de vue la lecture du code.


Tousse antique Ovide !

Hors ligne

#3 06-10-2024 21:27:14

Tawal
Membre
Distrib. : Debian Stable à jour
Noyau : amd64
(G)UI : Xfce
Inscription : 25-02-2021

Re : [Python 3] Imports nécessaires à mes Modules personnels [Résolu]

Donc je fais les imports nécessaires à mon module dans mon module.
Et j'importe les modules officiels (ainsi que mes modules persos) dans mon script si il en a besoin, peut importe les redondances.

Edit:
Du genre :
Mon_Module

import re
import string

# Code de mon module ci-après.
# …


Mon script

import re
import Mon_Module
# pas besoin du module 'string' dans mon script par exemple.

# Code de mon script ci-après
# …


J'aimerai une confirmation que l'import du module re dans l'exemple ci-dessus ne se fera pas 2 fois.
merci.gif
Parce que si je ne fais aucun import dans mon module et que j'importe tous les modules nécessaires à mon script et à mon module perso dans le script, ben mon module ne reçoit pas ces imports alors qu'ils sont faits avant d'importer le module perso.
PS: il n'y a pas d'import-export lol

Dernière modification par Tawal (07-10-2024 20:51:12)


Comme la science n'est pas infuse, elle se diffuse.
Useless Use of Cat Award
Filenames and Pathnames in Shell: How to do it Correctly
À chaque problème sa solution, à chaque solution son moyen, si pas de moyen, toujours le problème !

Hors ligne

#4 07-10-2024 20:57:31

Philou92
Adhérent(e)
Lieu : Hauts de Seine
Distrib. : Debian bookworm
Noyau : Linux 6.1.0-21-amd64
(G)UI : LightDM et Xfce4.18
Inscription : 29-04-2015

Re : [Python 3] Imports nécessaires à mes Modules personnels [Résolu]

Oui. smile

https://docs.python.org/fr/3/faq/programming.html#id13

+ un cas tordu…
https://docs.python.org/fr/3/faq/programming.html#id74

Dernière modification par Philou92 (07-10-2024 21:12:59)


Tousse antique Ovide !

Hors ligne

#5 07-10-2024 23:39:52

Tawal
Membre
Distrib. : Debian Stable à jour
Noyau : amd64
(G)UI : Xfce
Inscription : 25-02-2021

Re : [Python 3] Imports nécessaires à mes Modules personnels [Résolu]

Super yes.gif
Je ne connaissais pas cette FAQ de programmation.
merci.gif 2 fois smile

Comme la science n'est pas infuse, elle se diffuse.
Useless Use of Cat Award
Filenames and Pathnames in Shell: How to do it Correctly
À chaque problème sa solution, à chaque solution son moyen, si pas de moyen, toujours le problème !

Hors ligne

Pied de page des forums