GOOGLE ADS

mardi 26 avril 2022

Python - Comment créer une classe à partir d'un package sans le chemin d'importation complet ?

Imaginez un paquet avec ces dossier et fichier

package_name
../folder_name_one
../../folder_name_two
../../../file.py
class FarAway: # in file.py
pass

Est-il possible (avec init.py ou un sys.path ou autre chose) d'importer une classe FarAwaysimplement en importantpackage_name

import package_name
fa = FarAway()

je sais que je peux faire

from package_name.folder_name_one.folder_name_two.file import Faraway
fa = FarAway()

mais je voudrais "configurer" le paquet afin d'avoir accès à tous les sous-dossiers, afin que je puisse organiser mes fichiers mais je ne veux pas être obligé de le faire


  • faites toujours une importation avec le chemin complet

  • à tous mettre dans un seul gros fichier.


Merci! Si ce n'est pas possible, j'aimerais savoir...


Solution du problème

Mettez simplement un __init__.pyfichier dans le package_namedossier qui a le contenu:

from package_name.folder_name_one.folder_name_two.file import Faraway

Cela pourrait aussi être

from folder_name_one.folder_name_two.file import Faraway

selon la façon dont vous appelez les fichiers qui importent Faraway.

Plus d'informations : https://docs.python.org/3/reference/import.html#regular-packages

Aucun commentaire:

Enregistrer un commentaire

Comment utiliseriez-vous .reduce() sur des arguments au lieu d'un tableau ou d'un objet spécifique ?

Je veux définir une fonction.flatten qui aplatit plusieurs éléments en un seul tableau. Je sais que ce qui suit n'est pas possible, mais...