2017-08-07 23 views
1

我最近一直在研究Curses如何在Python中工作。我在这里按照教程:Curses Programming with Python,并且我已经成功地将他们的代码弄乱了,以便正确地将文本输出到控制台屏幕中的各个位置。Python curses:模块函数与实例函数

我的问题是: 为什么模块的某些功能属性,例如curses.noecho() ,但其他功能是屏幕对象的属性,例如, sreen_instance.keypad(True)

对我来说,让屏幕实例指定诸如noecho()cbreak()而不是模块是有意义的。

这是什么原因,是否有任何通用规则来识别函数是模块的属性还是Curses库中的对象实例的属性?

回答

0

尽管名称“stdscr上”定义为“标准屏幕”,这是一个诅咒窗口(和它的情况下有子窗口的顶层窗口)。

属性是在诅咒 - 电平或窗口 - 电平,因为这是对应的函数是如何在诅咒组织。大多数Python绑定具有与C库相同的名称和相似的参数(允许Python绑定中的可选参数减少所用名称的数量,例如Python中的addstr与C中的waddstr)。

要了解如何工作的,我只是看看诅咒I2C接口:任何使用WINDOW*参数(计数的别名,如getch()wgetch(stdscr))将在Python被实现为窗口结合属性(或函数),而那些不使用参数的属性将是属性(或函数)的一个缺陷。