J'apprends Python et je joue avec des packages. Je voulais connaître la meilleure façon de définir des cours dans des packages. Il semble que le seul moyen de définir des classes dans un package soit de les définir dans le J'aimerais que mon répertoire soit un peu comme ceci: p> afin que je puisse donc faire référence à mes classes comme __ init __. Py code> de cet emballage. En venant de Java, je voudrais un peu de définir des fichiers individuels pour mes cours. Est-ce une pratique recommandée?
recursor.recursor code>,
recursor.recursionException code> et
recursor.recursionresult code>. Est-ce faisable ou recommandé en python? P> p>
3 Réponses :
Ceci est parfaitement faisable. Créez simplement un nouveau module de classe pour chacune de ces classes et créez exactement la structure que vous avez postée. P>
Vous pouvez également faire un module Récursion.py ou quelque chose de similaire, et inclure les 3 classes dans ce fichier. P>
(Je suis aussi nouveau à Python de Java, et je n'ai rien mis dans mon __ init __. py code> fichiers ...) p>
Si je crée la mise en page d'annuaire ci-dessus, la définition de ma classe recursor dans le fichier Recursor.py et je tente d'importer « recursor.Recursor, » je reçois un ImportError. Qu'est-ce que je fais mal?
@RFKRockTK - Vous devrez peut-être spécifier Recursor.Recursor.Recursor ... le premier pour le colis, le second pour le module (le fichier) et le troisième pour la classe actuelle ... (Il est parfois préférable d'envisager d'utiliser des modules En tant que packages ... au lieu d'un correcteur de colis avec ces 3 classes sous forme de fichiers distincts, vous pouvez avoir un récurseur de module avec ces 3 classes à l'intérieur)
Dans Python, vous n'êtes pas limité à définir 1 classe par fichier et peu de choses. Vous pouvez si vous voulez bien - c'est totalement à vous de décider. Un paquet de python n'est qu'un répertoire avec un fichier . Vous n'avez rien à mettre dans ce fichier dans ce fichier, vous pouvez contrôler ce qui est importé, etc. p> p>
Allez-y et définissez vos classes dans des modules distincts. Ensuite, faites qui importera chaque classe dans l'espace de noms root du package, le code d'appel peut donc se référer à Je ressens la nécessité d'echo certains des autres commentaires ici, cependant: Python n'est pas Java. Plutôt que de créer un nouveau module pour chaque classe sous le soleil, je vous suggère de regrouper des classes étroitement liées à un seul module. Il est plus facile de comprendre votre code de cette façon, et le code d'appel n'a pas besoin de bazillions importations. P> p> __ init __. Py code> faire quelque chose comme ceci:
Recursor. Recurseur code> au lieu de
recursor.recursor.recursor code>. P>
Bien que recursor.recursor.recursor code> a un certain charme.
Obligatoire: Python n'est pas Java
Consultez également Stackoverflow.com/Questtions/2339371/...
Oui, vous pouvez, mais non, vous ne devriez pas.