(Python Unicurses)stdscr文件之间不传递?

我一直在努力学习诅咒(Unicurses,因为我在Windows上),一直在跟着一个教程,但我已经卡住了。 我遇到了这个错误信息:

D:\Python34>python ./project/cursed.py Traceback (most recent call last): File "./project/cursed.py", line 35, in <module> main() File "./project/cursed.py", line 20, in main obj_player = Player(stdscr, "@") File "D:\Python34\project\cursedplayer.py", line 10, in __init__ self.max_x = stdscr.getmaxyx()[1] - 1 AttributeError: 'c_void_p' object has no attribute 'getmaxyx' 

我可以从中得到的是,当试图获得两个文件之间的stdscrvariables时出了问题。 这里是我想要调用的函数的文件:

 from unicurses import * from cursedfunction import * class Player: def __init__(self, stdscr, body, fg = None, bg = None, attr = None): self.max_x = stdscr.getmaxyx()[1] - 1 self.max_y = stdscr.getmaxyx()[0] - 1 self.x = self.max_x / 2 self.y = self.max_y / 2 self.body = body del stdscr #create player self.window = newwin(1, 1, self.y, self.x) waddstr(self.window, self.body) self.panel = new_panel(self.window) self.fg = fg self.bg = bg self.color = 0 self.attr = attr if (fg != None) and (bg != None): self.set_colors(fg, bg) self.show_changes() def set_colors(self, fg, bg): self.color = make_color(fg, bg) self.fg = fg self.bg = bg waddstr( self.window, self.body, color_pair(self.color) + self.attr) self.show_changes() def show_changes(self): update_panels() doupdate() 

这是调用cursedplayer.py中定义的函数的主要文件:

 from unicurses import * from cursedfunction import * from cursedplayer import * #lines is 80 #columns is 25 def main(): stdscr = initscr() if not has_colors(): print("You need colors to run!") return 0 start_color() noecho() curs_set(False) keypad(stdscr, True) obj_player = Player(stdscr, "@") update_panels() doupdate() running = True while running: key = getch() if key == 27: running = False break endwin() if (__name__ == "__main__"): main() 

我会很感激任何帮助。 我一直在四处搜寻,但没有发现任何与我的问题有关的东西。 由于这个错误,我无法继续使用curses教程。 感谢您的阅读。

(cursedfunction.py不包括,因为它没有任何相关的信息,只是一个function,使颜色)

Solutions Collecting From Web of "(Python Unicurses)stdscr文件之间不传递?"

啊! 我很愚蠢。 错误消息给我所有我需要的信息 – 具体来说,stdscr没有一个名为“getmaxyx”的函数。 我输错了命令!

从这个角度来看:

 self.max_x = stdscr.getmaxyx()[1] - 1 self.max_y = stdscr.getmaxyx()[0] - 1 

对此:

 self.max_x = getmaxyx(stdscr)[1] - 1 self.max_y = getmaxyx(stdscr)[0] - 1 

…能够以我需要的格式传递信息。 为什么它在教程中工作我不知道,但我怪黑巫术。