2013-02-19 78 views
0

我一直在xcode和vi上收到这个错误。 Python说行类LeastModel有一个IndentationError:期望一个缩进块。 我在Xcode上检查了我的偏好设置,使用4个空格作为制表符,并且在任何地方使用了制表符。请帮帮我!Python IndentationError:Xcode上的“预期缩进块”

def make_model(data,model): 

class LeastModel(): 
    """ 
    linear system solved using linear least squares 
    This class serves as an example that fulfills the model interface needed by the ransa function. 
    """ 
    def __init__(self,input_columns,output_columns): 
     self.input_columns = input_columns 
     self.output_columns = output_columns 
     #self.debug = debug 
+1

如果问题真的出现在您所说的“LeastModel类”行中,那么问题必须出现在更早的行上(例如,是否有一个“if x:”行)? – 2013-02-19 20:17:27

回答

4

您的问题是你有行之后没有缩进代码:

def make_model(data,model): 

您可以:

  1. 摆脱该行

  2. 在该函数的主体中写入一些缩进代码

  3. 缩进整个类定义,以便在函数中定义类LeastModel

的事实判断你叫你的函数make_model和你LeastModel类,我觉得你有点打算把函数内的类定义。但是这可能是一个错误 - 请注意,如果你在一个函数中定义了它,你将无法在该函数之外使用这个类(除非你从该函数返回类,return LeastModel

+0

好的,我只是在函数make_model的主体中添加了一个缩进的注释,它的工作原理!谢谢! – snazziii 2013-02-19 20:29:46

2

假设没有一个复制错误,这就是你的代码实际上的样子,你需要缩进__init__()所以它是类定义的内部:

class LeastModel(): 
    """ 
    linear system solved using linear least squares 
    This class serves as an example that fulfills the model interface needed by the ransa function. 
    """ 
    def __init__(self,input_columns,output_columns): 
     self.input_columns = input_columns 
     self.output_columns = output_columns 
     #self.debug = debug 

编辑:现在您已经包含了完整的代码,问题实际上是您的make_model()函数定义下没有任何内容。如果该功能实际上应该什么都不做,请在def行下面添加pass(缩进一级)。否则,在那里放一些代码或删除def行。

+1

这是真的,但它不会导致'IndentationError'(用Python 2.6,2.7和3测试),缩进的docstring和'pass'的作用相同,另外,OP说这是他的代码看起来像的样子无论如何 – 2013-02-19 20:19:44

1

它不应该是:

class LeastModel(): 
    """ 
    linear system solved using linear least squares 
    This class serves as an example that fulfills the model interface needed by the ransa function. 
    """ 
    def __init__(self,input_columns,output_columns): 
     self.input_columns = input_columns 
     self.output_columns = output_columns 
     #self.debug = debug 
+0

这是真的,但它不会导致'IndentationError'(用Python 2.6,2.7和3测试) – 2013-02-19 20:18:48

+0

对不起,是的,我确实有我的代码,我会改变我的问题在stackoverflow – snazziii 2013-02-19 20:19:46

+0

我认为这是因为在LeastModel()之后没有缩进代码或'传递'。 – dln385 2013-02-19 20:20:14