Глобальная переменная и колба питона

То, что я хочу сделать, это просто отобразить firstevent из одного API. Переменная называется «firstevent», и значение должно отображаться на веб-странице. Но firstevent находится внутри def, поэтому я изменяю его на глобальную переменную и надеюсь, что он может использоваться для разных функций. Но он показывает «NameError: глобальное имя« firstevent »не определено». Это то, что я делаю:

определить глобальную переменную

  • Python: как я могу использовать переменную из основного файла в модуле?
  • Могу ли я предотвратить изменение объекта в Python?
  • Может ли интерпретатор python сбрасываться при переопределении функций?
  • Python: модуль протоколирования - глобально
  • Почему глобальное ключевое слово не требуется в этом случае?
  • Причина для globals () в Python?
  • global firstevent 

    отправьте этой переменной случайное значение, оно должно быть events['items'][1]['end']

     firstevent = 1 

    отображая ценность первого участника на веб-сайте.

     @app.route("/") def index(): return 'User %s' % firstevent 

    Я не уверен, что происходит сейчас, может быть, это проблема масштаба? Я проверил много ответов в Интернете, но до сих пор не могу найти решение.

    Вот подробности (не весь код)

     import os # Retrieve Flask, our framework # request module gives access to incoming request data import argparse import httplib2 import os import sys import json from flask import Flask, request from apiclient import discovery from oauth2client import file from oauth2client import client from oauth2client import tools from apiclient.discovery import build from oauth2client.client import OAuth2WebServerFlow import httplib2 global firstevent app = Flask(__name__) def main(argv): # Parse the command-line flags. flags = parser.parse_args(argv[1:]) # If the credentials don't exist or are invalid run through the native client # flow. The Storage object will ensure that if successful the good # credentials will get written back to the file. storage = file.Storage('sample.dat') credentials = storage.get() if credentials is None or credentials.invalid: credentials = tools.run_flow(FLOW, storage, flags) # Create an httplib2.Http object to handle our HTTP requests and authorize it # with our good Credentials. http = httplib2.Http() http = credentials.authorize(http) # Construct the service object for the interacting with the Calendar API. calendar = discovery.build('calendar', 'v3', http=http) created_event = calendar.events().quickAdd(calendarId='XXXX@gmail.com', text='Appointment at Somewhere on June 3rd 10am-10:25am').execute() events = calendar.events().list(calendarId='XXXX@gmail.com').execute() #firstevent = events['items'][1]['end'] firstevent = 1 #print events['items'][1]['end'] # Main Page Route @app.route("/") def index(): return 'User %s' % firstevent # Second Page Route @app.route("/page2") def page2(): return """<html><body> <h2>Welcome to page 2</h2> <p>This is just amazing!</p> </body></html>""" # start the webserver if __name__ == "__main__": app.debug = True app.run() 

  • Создание фонового чейнджера в python с помощью ctypes, не работает
  • Как преобразовать десятичное число во фракцию?
  • Отображение значений в словаре python
  • Дамп памяти, отформатированный как xxd из gdb
  • Tkinter. После окна замораживания метода?
  • Эффективно ли Cython cProfiling подразумевает запись многих подфункций?
  • One Solution collect form web for “Глобальная переменная и колба питона”

    Да, это проблема масштаба. В начале функции main() добавьте следующее:

     global firstevent 

    Это должно было сделать это. Любая переменная, которая не определена внутри функции, является глобальной. Вы можете получить доступ к нему прямо из любой функции. Однако, чтобы изменить переменную, вам нужно будет написать global var переменную global var в вашей функции.

    пример

    Это создает локальную переменную «firstevent» для функции:

     firstevent = 0 def modify(): firstevent = 1 

    И это изменяет глобальную переменную 'firstevent'

     firstevent = 0 def modify(): global firstevent firstevent = 1 
    Python - лучший язык программирования в мире.