2011-03-07 63 views
0

我正在尝试创建一个选项层次结构。我能够创建选项的第一个列表:如果用户选择选项1狐猴然后我运行Lemur.LE在Python中导入模块内部的模块

  1. 狐猴
  2. 大猩猩
  3. 黑猩猩

()功能导致我已经导入了狐猴模块。然后,他们提出了另一套方案:

  1. 白兰地
  2. 雪茄
  3. 剃须膏
  4. 选择不同的猴子。

选项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

发布您的代码... – 2011-03-07 14:21:44

+4

@Béres:几乎是正确的:*发布**最小**代码示例,重现错误*更好。 – 2011-03-07 14:32:19

回答

0

得到一个奇怪的缩进异常。思考?我是否需要更加努力?

缩进异常几乎总是由混合相同文件中的制表符和空格造成的。如果您使用的是像样的编辑器,则可以将其设置为自动将制表符转换为空格。如果你不使用体面的,停下来,并使用一个体面的编辑器。

+0

我正在使用Notepad ++。如果Python不配合,那么我认为它不是一个编辑器的问题,而不是体面的。 – DJG 2011-03-08 08:55:39

+0

@DJG:Notepad ++对python来说无疑是足够的。这里有另一个堆栈溢出问题,将告诉你如何照顾这些讨厌的选项卡:http://stackoverflow.com/questions/455037/notepad-tabs-to-spaces – SingleNegationElimination 2011-03-08 13:52:05

+0

感谢您的所有帮助。 – DJG 2011-03-10 07:12:07

0

目前尚不清楚的是不带一个代码示例做错了什么。一般情况下,导入是一个像其他任何语句一样的语句,可用于任何范围。所以:

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

应该工作得很好。

+3

'然后'不是Python关键字 – rubik 2011-03-07 16:24:40