2016-04-28 5 views
0

Ich versuche auf Variablen zuzugreifen, die ich in Python in einer Funktion in einem anderen Modul erstellt habe, um ein Diagramm zu zeichnen, Python kann sie jedoch nicht finden. Heres einige Beispiel-Code:Aufruf von Variablen in einem anderen Modul python

class1: 
    def method1 
     var1 = [] 
     var2 = [] 
    #Do something with var1 and var2 
     print var1 
     print var2 
     return var1,var2 

sample = class1() 
sample.method1 

hier ist Klasse 2

from class1 import * 

class number2: 
    sample.method1() 

Dies gilt, wie beabsichtigt und Drucke var1 und var2 aber ich kann nicht var1 oder var2 innerhalb Klassennummer 2

nennen BEHOBEN EDIT: Incase jemand anderes hat dieses Problem, ich habe es durch den Import dieser oben Klasse 2

behoben 10

Und dann in class2

 var1,var2 = smaple.method1() 
+0

Ist das der genaue Code, den Sie ausprobiert haben? – vmonteco

+1

Natürlich nicht. Es ist voll von Syntaxfehlern: fehlende ':', Einrückung, 'class' Schlüsselwort ... – Francesco

Antwort

0

Der Code, den Sie ist in seinem Kommentar voller Syntaxfehler wie Francesco sayed geschrieben. Vielleicht könnten Sie den richtigen einfügen.

Sie importieren nicht aus einer Klasse, sondern aus einem Paket oder einem Modul. Außerdem "ruft" man eine Variable nicht auf, es sei denn, es handelt sich um eine callable.

In Ihrem Fall könnte man einfach haben:

file1.py:

class class1: 
    def __init__(self): # In your class's code, self is the current instance (= this for othe languages, it's always the first parameter.) 
     self.var = 0 

    def method1(self): 
     print(self.var) 

sample = class1() 

file2.py:

from file1 import class1, sample 

class class2(class1): 
    def method2(self): 
     self.var += 1 
     print(self.var) 

v = class2()   # create an instance of class2 that inherits from class1 
v.method1()   # calls method inherited from class1 that prints the var instance variable 
sample.method1()  # same 
print(v.var)   # You can also access it from outside the class definition. 
v.var += 2   # You also can modify it. 
print(v.var) 
v.method2()   # Increment the variable, then print it. 
v.method2()   # same. 
sample.method1()  # Print var from sample. 
#sample.method2() <--- not possible because sample is an instance of class1 and not of class2 

Beachten Sie, dass method1() in class2 haben, class2 muss von class1 erben. Sie können jedoch weiterhin Variablen aus anderen Paketen/Modulen importieren.

Beachten Sie auch, dass var für jede Instanz der Klasse eindeutig ist.

+0

Danke für den Kommentar, aber wie greife ich auf var1 und var2 von diesem – javasaucebiner

+0

@javasaucebiner wie eine normale Funktion aus, die diese Variable sein soll zu der Instanz oder der Klasse. Vielleicht könntest du präziser darüber sein, was du willst. Was hast du wirklich versucht und wie hat es nicht funktioniert? – vmonteco

+0

Ich möchte ein Diagramm matplotlib plotten, mit den var1 und var2 Listen erstellt in class1 – javasaucebiner

Verwandte Themen