在Python中的模块内部导入模块

在Python中的模块内部导入模块,python,import,menu,hierarchy,Python,Import,Menu,Hierarchy,我正在尝试创建选项的层次结构。我可以创建第一个选项列表: 狐猴 大猩猩 黑猩猩 如果用户为Lemur选择选项1,那么我将运行Lemur.LE()函数,因为我已经导入了Lemur模块。然后,他们将看到另一组选项: 白兰地 雪茄 剃须膏 选择一只不同的猴子 选项4运行一个中断,将它们发送回第一个列表。我试图重复第一个体系结构中的操作,以便在调用Lemur.LE()函数时通过导入让他们选择Shaven.SC(),但是如果我在函数启动之前放置导入,那么当我第一次导入Lemur时,如果我从“LE()中调用

我正在尝试创建选项的层次结构。我可以创建第一个选项列表:

  • 狐猴
  • 大猩猩
  • 黑猩猩
  • 如果用户为Lemur选择选项1,那么我将运行Lemur.LE()函数,因为我已经导入了Lemur模块。然后,他们将看到另一组选项:

  • 白兰地
  • 雪茄
  • 剃须膏
  • 选择一只不同的猴子
  • 选项4运行一个中断,将它们发送回第一个列表。我试图重复第一个体系结构中的操作,以便在调用Lemur.LE()函数时通过导入让他们选择Shaven.SC(),但是如果我在函数启动之前放置导入,那么当我第一次导入Lemur时,如果我从“LE()中调用它们,我会在开始时遇到致命的崩溃函数,然后我得到一个奇怪的缩进异常。思想?我是否有必要让这件事对我自己更难

    附言

    好的,代码如下:

    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
    

    如果没有代码示例,就不清楚您做错了什么。一般来说,import和其他语句一样是一个语句,可以在任何范围内使用。因此:

    def LE():
        ...
        if option == 'Shaving Cream':
            import Shaven
            Shaven.SC()
        elif option == ...
    
    应该很好用

    得到一个奇怪的缩进异常。思想?我是否有必要让这件事对我自己更难


    缩进异常几乎总是由在同一文件中混合制表符和空格引起的。如果您使用的是像样的编辑器,则可以将其设置为自动将选项卡转换为空格。如果你没有使用一个像样的编辑器,停止它,使用像样的编辑器。

    @Béres:几乎正确:发布一个复制错误的最小代码示例更好。
    那么
    不是Python关键字我在使用记事本++。如果Python不能很好地使用它,那么我不认为编辑器不合适是一个问题。@DJG:Notepad++对于Python来说已经足够了。下面是另一个堆栈溢出问题,它将告诉您如何处理这些讨厌的选项卡: