Python 之pass 语句、函数体中的英文省略号(...)

本文介绍Python 之pass 语句、函数体中的省略号(...)。

pass 语句

pass 语句官网 https://docs.python.org/zh-cn/3/tutorial/controlflow.html#pass-statements

pass 是一种空操作(null operation)——不执行任何操作的语句,解释器执行到它的时候,除了检查语法是否合法,什么也不做就直接跳过。除了占用一行代码行,不会改变程序的执行顺序,也不会产生任何影响。

pass是关键字,IDE 会给出显眼的颜色区分,最常使用 pass 时,基本是在冒号的下一行——而冒号意味着要出现缩进代码块

def func():

    pass #将函数体的pass去除,会报错 expected an indented block(需要一个缩进块)

func() #调用

如果将前面的函数体的pass语句用注释来替代,看看会怎样?

def func():

    # todo:此处等待以后补上代码

func()

也会报错 expected an indented block,也就是说,缩进代码块中必须包含有语法意义的内容。像下面的例子都是有效的:

def funcA():

    """这是一个字符串"""

def funcB():

    "abc123"

Python 在定义空函数时,必须要有合法的函数体,因此设计出表示空操作的 pass 语句。它是为了补充语法的完整性,连同冒号,等效于其它语言中一对空的花括号。C语言的函数空函数体可以写成void main(){}

由此可知:Python 使用 pass 语句,是为了支持纯粹空操作的代码块(空函数、空类、空的循环控制块等等),有了它,还能额外表达出一种占位符的语义。

函数体中的省略号(...)

函数体中的省略号(...)和 pass 的作用类似。

注意,是英文省略号,即三个点(...)

例如

def fun():
      ...

def fun():
       pass

类似,这种用法的例子在https://docs.python.org/zh-cn/3/library/typing.html 中可以看到。

def f():
    print("Hi!")
    pass
    ...
    print("Hello!")

f() #调用

运行效果: 

 关于Python中的省略号(...)更多情况可见
https://qiwsir.github.io/2021/09/10/python-ellipsis/
https://zhuanlan.zhihu.com/p/489862322

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐