2016-01-03 8 views
0

Я пытаюсь импортировать настраиваемый модуль под названием «nester», и этот модуль использует sys.stdout. Если я попытаюсь импортировать nester, я получаю сообщение об ошибке. В чем проблема?sys не импортирует правильно при импорте другого модуля

import sys 
import nester 

x = ['a', 'b', 'c'] 
nester.print_lol(x) 

Это Нестер модуль

def print_lol(the_list, indent=False, level=0, fh=sys.stdout): 
    for each_item in the_list: 
     if isinstance(each_item, list): 
      print_lol(each_item, indent, level+1, fh) 
     else: 
      if indent: 
       for tab_stop in range(level): 
        print("\t", end='', file=fh) 
      print(each_item, file=fh) 

Я был в состоянии установить модуль на месте без каких-либо ошибок, но он по-прежнему не работает. Я пытался найти решение в течение 2 часов без везения, поэтому любая помощь будет оценена по достоинству. Я следую учебнику главы First Python из с. 126.

+3

Какая ошибка вы видите? –

+0

Traceback (самый последний вызов последнего): Файл "/ Users/имя пользователя/PycharmProjects/untitled7/блокнотная", строка 2, в импорта Нестер Файл «/Library/Frameworks/Python.framework/Versions/3.5/lib/ python3.5/site-packages/nester.py ", строка 1, в def print_lol (the_list, indent = False, level = 0, fh = sys.stdout): NameError: name 'sys' не определен – sevenwheels

+0

@sevenwheels ** отредактируйте вопрос ** с помощью [mcve]. – jonrsharpe

ответ

1

Вы должны импортировать sys в самом подмодуль, так что полный исходный код считывает

import sys 

def print_lol(the_list, indent=False, level=0, fh=sys.stdout): 
    for each_item in the_list: 
     if isinstance(each_item, list): 
      print_lol(each_item, indent, level+1, fh) 
     else: 
      if indent: 
       for tab_stop in range(level): 
        print("\t", end='', file=fh) 
      print(each_item, file=fh) 

Примечание добавленный импорт на первой линии.

+0

Спасибо! Я проверил книгу и не упоминает о добавлении этого кода. Вы знаете, почему это могло быть опущено? – sevenwheels

 Смежные вопросы

  • Нет связанных вопросов^_^