Python: глобальные переменные изнутри функций + Curses - PullRequest
1 голос
/ 01 марта 2011

Я очень, очень запутался ...

В основном пытаюсь объявить глобальную переменную, указывающую на окно проклятий, чтобы я мог использовать команду отладки, однако она жалуется AttributeError: 'NoneType' object has no attribute 'addstr', что подразумевает, что это не такзадавать?Пожалуйста, помогите!

wDebug = None

def start(stdscr):
    curses.nocbreak()
    curses.echo()
    screenSize = stdscr.getmaxyx()

    wDebug = curses.newwin(5, screenSize[1], 0, 0);

    curses.init_pair(1, curses.COLOR_WHITE, curses.COLOR_BLUE)

    wDebug.bkgd(curses.color_pair(1))
    wDebug.refresh()

    /* Snip */

    awaitInput(wInput)

    while 1: pass

def awaitInput(window): 
  while 1:
    msg = /* Snip */
    sendMessage(msg)

def sendMessage(msg):
  /* Snip */
  debug("Send message")

def debug(msg):
  wDebug.addstr(msg + "\n")
  wDebug.refresh()  

Большое спасибо за ваше время,

1 Ответ

1 голос
/ 01 марта 2011

Вам необходимо использовать глобальный оператор :

wDebug = None

def start(stdscr):
    global wDebug
    #...
    wDebug = curses.newwin(5, screenSize[1], 0, 0);

Из документации:

Невозможно назначить глобальную переменную безglobal

...