2017-06-06 13 views
0

関数とクラスのループで作成された変数をインポートする方法がわかりません。私は、エラー "はAttributeError: "だろう。例 "アドレス" オブジェクトが属性を持っていない" をクラスの関数から変数をインポート

それは次のようになります。

a.py

class Example(): 
    global address 
    address = "" 

    def __init__(self): 


    def loop_function(self, cam): 

     for i in imageZbar.symbols: 
      print(i.data) 
      address = i.data 
     return address 

b.py

from a import Example 

app = Flask(__name__) 

app.route("/example/") 
def blabla(): 
    imported_address = Example.address 
    return render_template("example.html", imported_address = imported_address) 
+0

を知っているように、あなたは' imported_address =例()。loop_functionを() '行うことができますループ関数のパラメータである必要があります。十分ではありませんか?あなたは何も「グローバル」にする必要はありません。 –

+0

申し訳ありませんが、loop_function()は実際には2つの引数を持っています。私があなたが好きだと言うと、「正確には2つの議論があります(1つは与えられます)」。 – Hendrik

+0

次に、第2引数を 'loop_function()'に渡します。最初の引数はデフォルトで渡される 'self'です。 –

答えて

0

行を削除するだけですglobal address

+0

私は '代入前に参照されたエラー'を取得します。 – Hendrik

0

クラスメンバように振る舞うのは...なぜ使用しない:

をa.py

class Example(): 

    def __init__(self): 
     self.address = "" 

    def loop_function(self, cam): 
     for i in imageZbar.symbols: 
      print(i.data) 
      self.address = i.data 
     return self.address 

b.py

from a import Example 

app = Flask(__name__) 
eg = Example() 
cam = None # I do not see anywhere this variable 
eg.loop(cam) 

app.route("/example/") 
def blabla(): 
    return render_template("example.html", imported_address = eg.address) 

あなたはすなわち、(クラスのように動作することを必要としない場合ループ関数を使用したいだけです)なぜクラスを作成するのに気をつけますか、なぜ関数を作成しないのですか?また、なぜグローバルでなければならないのでしょうか?

を:私はあなたがどこにもコードも

でそれを初期化していることがわかりません

ところで、コメントをチェックし、あなたが可変カムの誤差を持っている...、あなたはどこで取得している表示されません。

imageZbar.symbols 

が、これは私の知る限りb.py` `で

関連する問題