2017-08-07 44 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被實現爲窗口結合屬性(或函數),而那些不使用參數的屬性將是屬性(或函數)的一個缺陷。