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

时间:2011-03-07 14:14:51

标签: python import menu hierarchy

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

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

    1. 白兰地
    2. 雪茄
    3. 剃须膏
    4. 选择另一只猴子。
    5. 选项4运行一个中断,将它们发送回第一个列表。我试图从第一个架构重复操作,以便我可以让他们在调用函数Lemur.LE()时通过导入选择Shaven.SC(),但如果我在函数启动之前放置导入,那么我得到一个当我第一次导入狐猴时开始致命的崩溃,如果我从'LE()函数中调用它们,那么我会得到一个奇怪的缩进异常。思考?我是否有必要对自己进行更加努力?

      P.S。

      好的,这是代码:

      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 :(得分:0)

如果没有代码示例,您还不清楚自己做错了什么。通常,import是一个类似于任何其他语句的语句,可以在任何范围内使用。所以:

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

应该可以正常工作。

答案 1 :(得分:0)

  

得到一个奇怪的缩进异常。思考?我是否需要在自己身上做出更大的努力呢?

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