Python curses:模块函数与实例函数
问题描述:
我最近一直在研究Curses如何在Python中工作。我在这里按照教程:Curses Programming with Python,并且我已经成功地将他们的代码弄乱了,以便正确地将文本输出到控制台屏幕中的各个位置。Python curses:模块函数与实例函数
我的问题是: 为什么模块的某些功能属性,例如curses.noecho()
,但其他功能是屏幕对象的属性,例如, sreen_instance.keypad(True)
?
对我来说,让屏幕实例指定诸如noecho()
或cbreak()
而不是模块是有意义的。
这是什么原因,是否有任何通用规则来识别函数是模块的属性还是Curses库中的对象实例的属性?
答
尽管名称“stdscr上”定义为“标准屏幕”,这是一个诅咒窗口(和它的情况下有子窗口的顶层窗口)。
属性是在诅咒 - 电平或窗口 - 电平,因为这是对应的函数是如何在诅咒组织。大多数Python绑定具有与C库相同的名称和相似的参数(允许Python绑定中的可选参数减少所用名称的数量,例如Python中的addstr
与C中的waddstr
)。
要了解如何工作的,我只是看看诅咒I2C接口:任何使用WINDOW*
参数(计数的别名,如getch()
为wgetch(stdscr)
)将在Python被实现为窗口结合属性(或函数),而那些不使用参数的属性将是属性(或函数)的一个缺陷。