从类中的函数导入变量

时间:2017-06-06 07:54:28

标签: python class oop flask import

我无法弄清楚如何导入在函数和类中的循环中创建的变量。然后我会有错误“AttributeError:”示例“对象没有属性”地址“。

看起来像这样:

a.py

class Example():
    global address
    address = ""

    def __init__(self):
        pass

    def loop_function(self, cam):

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

b.py

from a import Example
from flask import Flask,render_template
app = Flask(__name__)

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

2 个答案:

答案 0 :(得分:0)

只需删除第global address

即可

答案 1 :(得分: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)

如果你不需要它像一个类(即只想使用循环函数),为什么甚至懒得创建一个类,为什么不创建一个函数。另外,为什么它必须是全球性的?

顺便说一句,检查注释,你有一个变量cam的错误...我没有看到你在代码中的任何地方初始化它

另外,你没有显示你在哪里:

 imageZbar.symbols

据我所知,这应该是循环函数的参数