"Ожидаемый блок с отступом" ошибка?

Я не могу понять, почему python выдает ошибку "Expected indentation block"?

""" 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)
Решение

Там нужно сделать отступ от docstring после определения функции (строки 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 о docstrings.

Надеюсь, это поможет!

Комментарии (1)

Я тоже испытал это на себе:

Этот код не работает и выдает ошибку предполагаемого блока.

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 перед вводом оператора return 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

Надеюсь, это поможет другим.

Комментарии (0)