我在学习Python的过程中,我已经到了关于pass语句的部分。我正在使用的指南将其定义为通常用作占位符的空语句。

但我还是不太明白这是什么意思。pass语句将被使用的简单/基本情况是什么?为什么需要它?


当前回答

假设您正在设计一个新类,其中包含一些您还不想实现的方法。

class MyClass(object):
    def meth_a(self):
        pass

    def meth_b(self):
        print "I'm meth_b"

如果您省略了传递,代码将无法运行。

然后你会得到一个:

IndentationError: expected an indented block

总之,pass语句不做任何特殊的事情,但它可以充当占位符,如下所示。

其他回答

除了“我不想要任何东西到这里”的“主要”用途之外,我刚刚发现了一个,假设gen是一个迭代器:

i = 0
obj = None

for i, obj in enumerate(gen):
    pass

这将在一次传递中获得gen生成的最后一个对象和gen的长度。(有点类似于C语言中以分号结尾的while循环,仔细想想吧。)

Pass指忽略…就是这么简单。如果给定的条件为真,并且下一个语句是通过的,它将忽略该值或迭代并继续执行下一行。

例子:

for i in range (1, 100):
    if i%2 == 0:
        pass
    else:
        print(i)

输出:输出1-100之间的所有奇数

这是因为一个偶数的模量等于零,因此它会忽略这个数字,继续下一个数字。由于奇数的模量不等于零,循环的else部分被执行并打印出来。

假设您正在设计一个新类,其中包含一些您还不想实现的方法。

class MyClass(object):
    def meth_a(self):
        pass

    def meth_b(self):
        print "I'm meth_b"

如果您省略了传递,代码将无法运行。

然后你会得到一个:

IndentationError: expected an indented block

总之,pass语句不做任何特殊的事情,但它可以充当占位符,如下所示。

在Python中,pass基本上什么都不做,但与注释不同的是,它不会被解释器忽略。所以你可以在很多地方利用它,把它变成占位符:

1:可以在课堂上使用

class TestClass:
    pass

2:可以在循环语句和条件语句中使用:

if (something == true):  # used in conditional statement
    pass

while (some condition is true):  # user is not sure about the body of the loop
    pass

3:可用于功能:

def testFunction(args): # The programmer wants to implement the body of the function later
    pass

当程序员暂时不想给出实现,但仍然想创建某个类/函数/条件语句以供以后使用时,通常使用Pass。由于Python解释器不允许出现空白或未实现的类、函数或条件语句,因此会给出一个错误:

IndentationError:期望一个缩进的块

Pass可以在这种情况下使用。

首先,如果你想写一个block,像这样:

if statement:
    pass
for i in range(abc):
    pass
def func():
    pass

pass can是一个占位符。

其次,它可以让你与IDE“交流”: 当你想让你的IDE像这样递减缩进: 如果你的程序写在这里:

class abc(parent):
    def __init__(self, params):
        self.params=params
        if d:
            return
        else:
            return
        # cursor in there

现在你的缩进计数是2,但你希望它在下一行是1。 你可以输入一个pass,你的程序是这样的:

class abc(parent):
    def __init__(self, params):
        self.params=params
        if d:
            return
        else:
            return
        pass# cursor in there

并返回。它会让你快乐:

class abc(parent):
    def __init__(self, params):
        self.params=params
        if d:
            return
        else:
            return
        pass
    # cursor in there

现在缩进计数是1。