多个urwid调用获取终端大小使文件保持打开状态

时间:2016-07-03 03:08:19

标签: python linux python-3.x file-descriptor urwid

如果我拨打以下电话:

from urwid import raw_display
cols, rows = raw_display.Screen().get_cols_rows()

...文件描述符保持打开状态。多次调用此函数会导致Python 3 Interpreter崩溃;特别是如果像我以前那样做的话:

size = lambda rows = True: raw_display.Screen().get_cols_rows()[rows]

如何防止以下错误?

  

OSError: [Errno 24] Too many open files

1 个答案:

答案 0 :(得分:1)

仅创建一次raw_display.Screen()

一种方法是使用默认参数;它仅被评估一次 - 定义函数/ lambda时:

size = lambda rows=True, scr=raw_display.Screen(): scr.get_cols_rows()[rows]