我最近一直在研究Curses如何在Python中运行。我已经按照这里的教程:Curses Programming with Python,我已经成功地使用他们的代码来正确地将文本输出到控制台屏幕中的各个位置。
我的问题是:
为什么模块的某些函数属性,例如curses.noecho()
但是其他功能是屏幕对象的属性,例如, sreen_instance.keypad(True)
?
让屏幕实例指定noecho()
或cbreak()
等内容而不是模块是有意义的。
这背后的原因是什么,是否有任何一般规则来识别函数应该是模块的属性,还是Curses库中对象实例的属性?
答案 0 :(得分:1)
尽管名称是" stdscr" as"标准屏幕",这是一个curses 窗口 (如果有的话,它是顶级窗口是子窗口。)
属性位于 curses -level或窗口 -level,因为它是如何在curses中组织相应的函数的。大多数Python绑定具有与C库相同的名称和相似的参数(允许Python绑定中的可选参数减少使用的名称数量,例如,Python中的addstr
与waddstr
中的wgetch(stdscr)
C)。
要了解其工作原理,我只需查看curses C接口:使用 git init
git add .
git commit -m "First commit"
git remote add origin 'your repository url'
git remote -v
git push origin master
参数的任何内容(计算WINDOW*
等别名为{{3}})将在Python绑定中作为 window 属性(或函数)实现,而那些不使用 getch()
参数的那些是一个 curses 属性(或函数)。