3 votes

Méthode pythonique pour utiliser la référence d'une classe dans un autre fichier

Je suis dans une situation où je veux utiliser une instance de classe déclarée dans un fichier dans un second fichier. Pour un petit exemple, voir le code ci-dessous :

Comment je le résous à l'heure actuelle ?

Fichier2 (à exécuter) :

# Prog2:
from prog1 import *

cls1.dict["name"] = "John"

Dossier 1

# Prog1:

class Myclass(object):
    def __init__(self):
        self.dict = {}

cls1 = Myclass()

import prog2
print cls1.dict["name"]

Y a-t-il une meilleure façon de procéder ?

5voto

zenpoy Points 6175

Pourquoi cette dépendance circulaire ?

Dossier 1 :

# file 1
class MyClass(object):
    def __init__(self):
        self.dict = {}

cls1 = MyClass()
cls1.dict["name"] = "John"

Dossier 2 :

# file 2
from prog1 import cls1

print cls1.dict["name"]
>> "John"

2voto

nmclean Points 4251

Le but premier de import est de rendre la fonctionnalité disponible sur . En général, il ne devrait pas être utilisé comme une méthode de exécution de une procédure. Votre "prog2" doit contenir une fonction avec un paramètre :

def execute(instance):
    instance.dict["name"] = "John"

"prog1" peut alors l'appeler avec l'instance appropriée :

import prog2

class Myclass(object):
    def __init__(self):
        self.dict = {}

cls1 = Myclass()

prog2.execute(cls1)
print cls1.dict["name"]

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X