2016-04-28 8 views
0

私は、グラフをプロットするためにPythonの別のモジュール内のある関数で作成した変数にアクセスしようとしていますが、Pythonはそれらを見つけることができません。 HERESにいくつかのサンプルコード:別のモジュールで変数を呼び出すPython

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

sample = class1() 
sample.method1 

ここでは、クラスは、これは意図して印刷VAR1とVAR2として行いますが、私はクラス番号2

内VAR1またはVAR2を呼び出すことはできません2

from class1 import * 

class number2: 
    sample.method1() 

です修正された編集: 他の誰かがこの問題を抱えているので、私はこれをクラス2以上でインポートして修正しました

そしてクラス2

 var1,var2 = smaple.method1() 
+0

これは正確なコードですか? – vmonteco

+1

もちろんです。これは文法エラーがたくさんあります: '、'、インデント、 'class'キーワードがありません... – Francesco

答えて

0

の内側にあなたが投稿したコードは、彼のコメントにフランチェスコ・サイードのように構文エラーがいっぱいです。おそらく、正しいものを貼り付けることができます。

クラスからインポートするのではなく、パッケージまたはモジュールからインポートします。さらに、callableでない限り、変数を呼び出すことはありません。あなたのケースでは

あなただけかもしれない:

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:class2method1()を持っている

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 

注意を、 class2class1から継承する必要があります。しかし、他のパッケージ/モジュールから変数をインポートすることはできます。

また、varはクラスの各インスタンスで一意であることに注意してください。

+0

コメントありがとうございますが、これからvar1とvar2にアクセスするにはどうすればいいですか? – javasaucebiner

+0

@javasaucebiner通常の関数unlesのように、インスタンスまたはクラスに追加します。おそらく、あなたはあなたが望むものについてもっと正確になるかもしれません。あなたは何を本当に試してみましたか? – vmonteco

+0

class1で作成されたvar1とvar2リストを使ってmatplotlibグラフをプロットしたい – javasaucebiner

関連する問題