Изменить значение глобальной переменной в функции с параметром в python - PullRequest
0 голосов
/ 14 апреля 2019

Я получил код из интернета для моего проекта, и есть функция с параметром, которая мне нужна для изменения значения глобальной переменной

это приложение 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, кто-нибудь может мне помочь?

Ответы [ 2 ]

1 голос
/ 14 апреля 2019

Чтобы изменить глобальную переменную с именем X внутри функции, вы должны сделать:

1) перенести переменную в область действия функции

global X

2) изменить его значение

X = 30

так:

def abc():
    global x
    x = 30
0 голосов
/ 14 апреля 2019

Вам необходимо использовать ключевое слово global, например:

def processRequest(req):
    device = req['device']
    state = json.loads(req['state'])
    if (device=='bedlamp'):
        global X
        X = 30
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...