Python IndentationError:Xcode上的“预期缩进块”
我一直在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
您的问题是你有行之后没有缩进代码:
def make_model(data,model):
您可以:
摆脱该行
在该函数的主体中写入一些缩进代码
缩进整个类定义,以便在函数中定义类
LeastModel
。
的事实判断你叫你的函数make_model
和你LeastModel
类,我觉得你有点打算把函数内的类定义。但是这可能是一个错误 - 请注意,如果你在一个函数中定义了它,你将无法在该函数之外使用这个类(除非你从该函数返回类,return LeastModel
。
好的,我只是在函数make_model的主体中添加了一个缩进的注释,它的工作原理!谢谢! – snazziii 2013-02-19 20:29:46
假设没有一个复制错误,这就是你的代码实际上的样子,你需要缩进__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
行。
这是真的,但它不会导致'IndentationError'(用Python 2.6,2.7和3测试),缩进的docstring和'pass'的作用相同,另外,OP说这是他的代码看起来像的样子无论如何 – 2013-02-19 20:19:44
它不应该是:
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
如果问题真的出现在您所说的“LeastModel类”行中,那么问题必须出现在更早的行上(例如,是否有一个“if x:”行)? – 2013-02-19 20:17:27