【问题标题】:indentation problem in my python program我的python程序中的缩进问题
【发布时间】:2010-01-21 06:31:38
【问题描述】:

我正在使用以下代码并遇到一些缩进问题

from django.db import models

class Poll(models.Model):
    question = models.CharField(max_length=200)
    pub_date = models.DateTimeField('date published')

    def __unicode__(self):
        return self.question

我收到以下错误

File "E:\Softwares\Django-1.1.1.tar\.py", line 7
    def __unicode__(self):
    ^
IndentationError: unexpected indent

【问题讨论】:

    标签: python django


    【解决方案1】:

    您很可能在缩进中混合使用了制表符和空格...改为使用所有空格/所有制表符。 (最广泛采用的样式是每级缩进使用 4 个空格。)

    要解决此问题的特定实例,请检查使def __unicode__(self): 行以与pub_date = ... 行相同的缩进开始。 return ... 行使用相同的缩进 + 四个额外空格。

    【讨论】:

    • 找出答案的一个好方法是使用python -tt 运行脚本。
    • 不客气。 :-) @Ignacio:感谢您添加好的提示!
    【解决方案2】:

    同意其他的,您可以使用可以可视化空间的编辑器进行检查。例如 vim set list listchars=tab:»·,trail:·(我想gedit也有这样的插件)。

    【讨论】:

    • 这些是一些非常酷的列表字符! +1 的想法。 :-)
    【解决方案3】:

    我在这里胡乱猜测,您的回溯中有一个文件名*这一事实与我的猜测相反,但是嘿……

    由于您的制表符/空格看起来或多或少没问题(假设是逐字复制/粘贴),您是否可以将代码粘贴到交互式解释器中?

    字段定义后的换行符会使解释器认为类定义已完成,因此假设回到全局范围。这意味着def 确实是错误缩进的。

    * .py 对于 python 脚本来说并不是一个很好的文件名,顺便说一句

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-11-30
      • 2020-08-19
      • 1970-01-01
      • 1970-01-01
      • 2014-12-05
      • 2021-08-26
      • 2023-03-13
      • 1970-01-01
      相关资源
      最近更新 更多