Я смотрю на некоторый исходный код из книги и заметил, что некоторые из кода, похоже, не находятся в текущем API Python2.7. Модуль curses
, согласно этому коду, должен иметь постоянную переменную, называемую LINES
, а другую - COLS
. Я открыл интерактивный терминал Python и увидел, что нет никакой переменной или метода COLS
или LINES
.Python Curses - модуль 'curses' не имеет атрибута 'LINES'
Мой вопрос: как этот код работает?
def draw_loglines(self):
self.screen.clear()
status_col = 4
bytes_col = 6
remote_host_col = 20
status_start = 0
bytes_start = 4
remote_host_start = 10
line_start = 26
logline_cols = curses.COLS - status_col - bytes_col - remote_host_col - 1
for i in range(curses.LINES):
c = self.curr_topline
try:
curr_line = self.loglines[c]
except IndexError:
break
self.screen.addstr(i, status_start, str(curr_line[2]))
self.screen.addstr(i, bytes_start, str(curr_line[3]))
self.screen.addstr(i, remote_host_start, str(curr_line[1]))
#self.screen.addstr(i, line_start, str(curr_line[4])[logline_cols])
self.screen.addstr(i, line_start, str(curr_line[4]), logline_cols)
self.curr_topline += 1
self.screen.refresh()
Если я открываю интерактивную оболочку и импорт Python3 'curses' введите' curses.LINES' я все еще получаю ошибку. :/Спасибо за ответ, хотя. –
Священная корова, я попробовал Python 3.3 сейчас, и вы правы, это не работает. Может быть, 3.4? –
Я использую Python 3.2.3:/Возможно, мне придется попробовать обновление. Книга, которую я читаю, была опубликована в 2008 году, поэтому я сомневаюсь, что они использовали Python 3000.: D Спасибо за помощь Джона. Поток SO на ширине и высоте терминала, которые вы связали, может быть, мой лучший вариант. –