我试图在另一个文件2中使用来自文件1的字典,但在文件2中它打印空字典。你能帮我解释一下原因吗,提前谢谢。
以下是我的文件1:
from flask import Flask, render_template, request
global user_pincode
user_pincode={}
app = Flask(__name__)
@app.route('/', methods=["GET", "POST"])
def index():
global user_pincode
#user_pincode getting updated here
@app.route('/delete', methods=["GET", "POST"])
def delete():
global user_pincode
#user_pincode getting updated here
if __name__ == "__main__":
app.run(debug=True)
以下是我的文件2:
import file1
print(file1.user_pincode)
您进行了import file1
这就是为什么file1.user_pincode
等于{}
但是您没有调用任何可以更改值的函数。
看一看。
A。让我们修改file1
中的函数delete
@app.route('/delete', methods=["GET", "POST"])
def delete():
# global user_pincode
user_pincode['key'] = 'delete'
B。修改调用方模块main.py
:
import file1
print(file1.user_pincode)
file1.delete()
print(file1.user_pincode)
C。运行它:
python main.py
{}
{'key': 'delete'}
一切如预期。
注意,dict
在任何地方都不需要global
。
我认为这是一个编译时/运行时问题。
全局变量在编译时初始化为空字典。您的file2在编译时进行评估,因此它会打印一个空dict。
你的用例是什么?如果您想让一个值在单个请求中幸存下来,您可能需要将其存储在某个文件或数据库中。