Импорт модулей внутри модулей в Python - PullRequest
0 голосов
/ 07 марта 2011

Я пытаюсь создать иерархию опций.Я могу создать первый список вариантов:

  1. лемур
  2. горилл
  3. шимпанзе

, если пользователь выбирает вариант1 для лемуров, тогда я запускаю функцию Lemur.LE (), потому что я уже импортировал модуль лемура.Затем им предоставляется другой набор параметров:

  1. Бренди
  2. Сигары
  3. Крем для бритья
  4. Выберите другую обезьяну.

опция 4 запускает перерыв, который отправляет их обратно в первый список.Я пытаюсь повторить действия из первой архитектуры, чтобы они могли выбрать Shaven.SC () путем импорта при вызове функции Lemur.LE (), но если я помещаю импорт до запуска функции, я получаюфатальный сбой в начале, когда я впервые импортирую лемур, если я вызываю их из функции LE (), то получаю странное исключение отступа.Мысли?Я усложняю себе это тогда, когда это необходимо?

PS

Хорошо, вот код:

begin = int(raw_input("""Options 1-6"""))
    elif begin == 3:
    L.Leg()
    elif begin == 6:
        print "Goodbye"
        exit()

Level 2:

def Leg():
    begin = int(raw_input("""options 1-5"""))
    elif begin == 2:
        import LegacyWT
    else:
        print "Returning to Main Menu."
        break

Ответы [ 2 ]

0 голосов
/ 08 марта 2011

получить странное исключение отступа. Мысли? Я усугубляю это для себя тогда, когда это необходимо?

Исключения отступов почти всегда вызваны смешиванием вкладок и пробелов в одном файле. Если вы используете достойный редактор, вы можете настроить его на автоматическое преобразование вкладок в пробелы. Если вы не используете приличный, остановите его и используйте приличный редактор.

0 голосов
/ 07 марта 2011

Непонятно, что вы делаете неправильно без примера кода. В общем случае импорт является оператором, как и любой другой, и может использоваться в любой области. Итак:

def LE():
    ...
    if option == 'Shaving Cream':
        import Shaven
        Shaven.SC()
    elif option == ...

должно работать просто отлично.

...