2017-07-21 1 views
0

Ceci est un exemple du code:python 2.7 Utilisation à l'intérieur d'une fonction d'une méthode d'une classe, si l'instance de la classe est dans une autre fonction

module1.py est importé dans la conduite principale. Dans modul1.py, il existe une fonction init() qui crée des classes à partir d'une bibliothèque importée précédente, puis d'autres fonctions utilisent cette instance de la classe et les méthodes de cette classe.

ERROR: global name name1 not defined 

module1.py:

from lib import class1, classs2 

def init(): 
    name1.class1() 


def function(): 
    name1.class1method1() 

main.py:

import module1 
init() 

function() 

J'ai besoin d'aide, merci

+0

vous appelez simplement un nom non existant (variable, module ou autre) 'name1'. – Arount

Répondre

0

Je pense que vous pouvez vous sentir désorienté entre la création d'un objet à partir d'un cl ass définition et accès aux méthodes de la classe. Vous obtenez une erreur non définie car vous n'avez pas encore défini name1.

Avec les réglages suivants, votre code fonctionnerait:

module1.py:

from lib import class1, classs2 

def Init(): 
    global name1 
    name1 = class1() 


def function(): 
    name1.class1method1() 

main.py:

import module1 
module1.Init() 

module1.function() 

Cela dit les variables globales sont une mauvaise idée, donc le code ci-dessus est à des fins de démonstration seulement, pas pour une utilisation réelle.