Python 确认缩进问题?

3 投票
8 回答
1544 浏览
提问于 2025-04-15 18:30

我刚开始学习Python,这是我第一次在Python中使用类。当我尝试运行这个脚本时,出现了一个错误:

缩进错误:期待一个缩进的代码块

这是什么意思呢?

import random

class Individual:
    alleles = (0,1)
    length = 5
    string = ""

    def __init__(self):
        #some constructor work, here.

    def evaluate(self):
        #some stuff here.

    def mutate(self, gene):
        #mutate the given gene.

    def onePointCrossover(self, partner):
        #at some random point, crossover.

    def twoPointCrossover(self, partner):
        #at two random(?) points, crossover.

class World:
    def __init__(self):
        #stuff.

    def buildPopulation(self):
        #stuff.
        for individual in self.population():
            for i in range(0, individual.length):
                print random.random()


    def display(self):
        #print some output stuff.

if __name__ == '__main__':
    print "hi there"

8 个回答

3

当你在设计你的类的时候,可能会有很多方法暂时还没有实现功能,这时候你需要用到 pass 这个语句,来表示这里什么都不做。

比如这样:

class Individual:
    alleles = (0,1)
    length = 5
    string = ""

    def __init__(self):
        #some constructor work, here.
        pass

    def evaluate(self):
        #some stuff here.
        pass
    ...

如果你看到“意外的缩进”这个提示,那是因为 Python 在期待在方法定义后面有一个缩进的语句。

4

如果你在代码中使用了一个以 : 结尾的东西,并且期待后面有一个缩进的代码块,但你又没有什么想放进去的内容(除了注释),那么你需要使用 pass

比如:

def doNothing(self):
    pass
11

这些方法都是只有注释的内容。

要解决这个问题,可以这样做:

def twoPointCrossover(self, partner):
        #at two random(?) points, crossover.
        pass

注释并不算是可以编译的代码,所以你会有一堆空的代码块。这就是为什么会出现缩进错误的原因。

撰写回答