Ошибка "Ожидается блок с отступом"?
Я не могу понять, почему Python выдает ошибку "Ожидаемый блок отступов"?
""" This module prints all the items within a list"""
def print_lol(the_list):
""" The following for loop iterates over every item in the list and checks whether
the list item is another list or not. in case the list item is another list it recalls the function else it prints the ist item"""
for each_item in the_list:
if isinstance(each_item, list):
print_lol(each_item)
else:
print(each_item)
2 ответа
Решение
Вы должны сделать отступ для строки документации после определения функции (строки 3, 4):
def print_lol(the_list):
"""this doesn't works"""
print 'Ain't happening'
Отступ:
def print_lol(the_list):
"""this works!"""
print 'Aaaand it's happening'
Или вы можете использовать #
комментировать вместо:
def print_lol(the_list):
#this works, too!
print 'Hohoho'
Также вы можете увидеть PEP 257 о строках документов.
Надеюсь это поможет!
Я также испытал это, например:
Этот код не работает и выдает ошибку предполагаемого блока.
class Foo(models.Model):
title = models.CharField(max_length=200)
body = models.TextField()
pub_date = models.DateTimeField('date published')
likes = models.IntegerField()
def __unicode__(self):
return self.title
Однако, когда я нажимаю клавишу tab перед вводом оператора self.title, код работает.
class Foo(models.Model):
title = models.CharField(max_length=200)
body = models.TextField()
pub_date = models.DateTimeField('date published')
likes = models.IntegerField()
def __unicode__(self):
return self.title
Надеюсь, это поможет другим.