如何更改函数中全局变量的值?

2024-06-16 13:23:43 发布

您现在位置:Python中文网/ 问答频道 /正文

我从网上得到了一个项目的代码,有一个带参数的函数,我需要修改全局变量值

这是一个flask请求json应用程序,我使用ifttt向这个项目发送json。我试着用这个代码来改变,但它不会改变,X总是在1中

X=1
@app.route('/',methods=['POST'])
def index():
    req = request.get_json(silent=True, force=True)
    val = processRequest(req)
    #print(val)
    r = make_response(json.dumps(val))
    r.headers['Content-Type'] = 'application/json'
    return r
def processRequest(req):
    device = req['device']
    state = json.loads(req['state'])
    #print(state)
    if (device=='bedlamp'):  
       global()['X']=int(30)

当ifttt发送设备bedlamp时,全局变量的值变为30,我想要它,有人能帮我吗


Tags: 项目代码jsontrue参数devicedefval
2条回答

要更改函数中名为X的全局变量,必须执行以下操作:

1)将变量带入函数范围

global X

2)更改其值

X = 30

因此:

def abc():
    global x
    x = 30

您需要使用global关键字,如下所示:

def processRequest(req):
    device = req['device']
    state = json.loads(req['state'])
    if (device=='bedlamp'):
        global X
        X = 30

相关问题 更多 >