未定义全局变量-Python
我对全局变量有问题。它返回错误未定义全局变量-Python,python,error-handling,global-variables,Python,Error Handling,Global Variables,我对全局变量有问题。它返回错误 search = Search.Search(pattern,b) NameError: global name 'b' is not defined 但是我已经定义了这个全局变量。我甚至试着把它放到搜索功能中。我认为在Windows上没有问题。我正在尝试在Linux/Unix上运行此程序 你对如何避免这个错误有什么建议吗 # -*- coding: utf-8 -*- from flask import Flask from flask import r
search = Search.Search(pattern,b)
NameError: global name 'b' is not defined
但是我已经定义了这个全局变量。我甚至试着把它放到搜索功能中。我认为在Windows上没有问题。我正在尝试在Linux/Unix上运行此程序
你对如何避免这个错误有什么建议吗
# -*- coding: utf-8 -*-
from flask import Flask
from flask import request
from flask import render_template
import Search
import B
app = Flask(__name__)
global b
@app.route('/')
def my_form():
return render_template('my-form.html')
def setup():
global b
b = B.B()
@app.route('/', methods=['POST'])
def search():
global b
from time import time
pattern = request.form['text']
...
se = Search.Search(pattern,b)
...
...
...
app.debug=True
if __name__ == '__main__':
setup()
app.run()
这里的global b
语句实际上并没有为您创建变量。你需要自己给它分配一些东西
app = Flask(__name__)
b = None #or whatever you want the starting value to be
您是否尝试过通过将“b”传递到函数中来解决此问题?不管怎样,它通常比使用全局更受欢迎。b到底是什么?它是一个类吗?是的,它是一个类的对象。我不能这样做,因为函数搜索没有被明显调用。我不知道如何将b传递给搜索函数。
app = Flask(__name__)
b = None #or whatever you want the starting value to be