繁体   English   中英

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

[英]How to change value of global variable in a function?

我从互联网上获得了我的项目的代码,并且有一个带有参数的函数,我需要更改全局变量值

这是一个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发送设备床灯时,我想要它,全局变量的值变成30,有人可以帮我吗?

要在函数内更改名为 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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM