1

我在 xcode 和 vi 上遇到了这个错误。Python 说行类 LeastModel 有一个 IndentationError: expected an indented block。我检查了我在 Xcode 上的偏好,将 4 个空格用于制表符以及我一直在使用制表符的所有地方。请帮我!

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
4

3 回答 3

4

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

def make_model(data,model):

您可以:

  1. 摆脱那条线

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

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

make_model从你调用你的函数和你的类的事实来看LeastModel,我认为你以某种方式打算将类定义放在函数中。但这可能是您的错误 - 请注意,如果您在函数中定义它,您将无法在函数之外使用该类(除非您从函数中返回类本身,使用return LeastModel.

于 2013-02-19T20:23:11.017 回答
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()函数定义下没有任何内容。如果该函数实际上应该什么都不做,请pass在该行下方添加def(缩进一级)。否则,在此处放置一些代码或删除该def行。

于 2013-02-19T20:17:21.160 回答
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
于 2013-02-19T20:17:29.330 回答