为什么有些功能pass了
Why do some of functions have pass
在(一些)python 库中,当我查找代码时,我看到一堆函数或 class 方法,它们是这样写的:
def funcName():
pass
我只想知道这些函数是如何做的,即使它们只有 pass
,这意味着该函数不应该做任何事情。
只有 pass
语句的那些 functions/methods 没有做任何特别的事情。 pass
通常是稍后编写的代码的占位符。
您还可以在 类 中找到定义自定义异常的 pass
语句,例如:
class MyException(Exception):
pass
通常这些是(可能是抽象的)基础 class 中的占位符方法,为派生的 classes 定义模板。
python 中的函数在语法上不能为空。这就是为什么你需要填充它们,通常使用 pass
有时,声明了函数,但故意留空。然后,它们可以在默认实现中使用,但可能被 classes 扩展(继承)库 class.
覆盖
pass
什么都不做。在你实现某些东西之前让代码 运行 是一个填充。这些图书馆可能正在使用 pass
来:
- 留下空白代码稍后完成
- 创建最小
class
:
- 暗示一段代码什么都不做
- 永远循环(什么也不做)
所以对于你关于图书馆的问题,他们可能什么都不做。 pass
本身几乎和空白行一样好,但可以与功能语句混合以实现工作模块。但是你问题中的函数什么都不做。
假设我想在我的文件中保留一个函数 f
,稍后再回来处理它。我可以使用 pass
来避免 IndentationError
:
>>> def f():
... pass
...
>>> f()
>>>
如果没有 pass
,我会:
>>> def f():
...
File "<stdin>", line 2
^
IndentationError: expected an indented block after function definition on line 1
>>>
这在the offical docs中也有解释:
The pass statement does nothing.
It can be used when a statement is required syntactically but the program requires no action. For example:
>>> while True:
... pass # Busy-wait for keyboard interrupt (Ctrl+C)
...
Python pass是一个空语句,以保持程序结构的完整性。 Pass 什么都不做,一般用作占位语句。执行传递时没有任何反应。结果没有操作。
假设我们有一个尚未实现的循环或函数,但我们希望在将来实现它。他们不能有空 body。解释器会报错。因此,我们使用 pass 语句构造一个什么都不做的 body。
对于user-defined函数,pass意味着什么都不做,但是对于一些库函数(包括third-party库),通常意味着它们的逻辑不是用纯Python代码写的,如NumPy
和Python标准库,为了追求高效运行,大部分函数都是用C语言编写的,并提供相应的Python接口。
在(一些)python 库中,当我查找代码时,我看到一堆函数或 class 方法,它们是这样写的:
def funcName():
pass
我只想知道这些函数是如何做的,即使它们只有 pass
,这意味着该函数不应该做任何事情。
只有 pass
语句的那些 functions/methods 没有做任何特别的事情。 pass
通常是稍后编写的代码的占位符。
您还可以在 类 中找到定义自定义异常的 pass
语句,例如:
class MyException(Exception):
pass
通常这些是(可能是抽象的)基础 class 中的占位符方法,为派生的 classes 定义模板。
python 中的函数在语法上不能为空。这就是为什么你需要填充它们,通常使用 pass
有时,声明了函数,但故意留空。然后,它们可以在默认实现中使用,但可能被 classes 扩展(继承)库 class.
覆盖pass
什么都不做。在你实现某些东西之前让代码 运行 是一个填充。这些图书馆可能正在使用 pass
来:
- 留下空白代码稍后完成
- 创建最小
class
: - 暗示一段代码什么都不做
- 永远循环(什么也不做)
所以对于你关于图书馆的问题,他们可能什么都不做。 pass
本身几乎和空白行一样好,但可以与功能语句混合以实现工作模块。但是你问题中的函数什么都不做。
假设我想在我的文件中保留一个函数 f
,稍后再回来处理它。我可以使用 pass
来避免 IndentationError
:
>>> def f():
... pass
...
>>> f()
>>>
如果没有 pass
,我会:
>>> def f():
...
File "<stdin>", line 2
^
IndentationError: expected an indented block after function definition on line 1
>>>
这在the offical docs中也有解释:
The pass statement does nothing. It can be used when a statement is required syntactically but the program requires no action. For example:
>>> while True: ... pass # Busy-wait for keyboard interrupt (Ctrl+C) ...
Python pass是一个空语句,以保持程序结构的完整性。 Pass 什么都不做,一般用作占位语句。执行传递时没有任何反应。结果没有操作。
假设我们有一个尚未实现的循环或函数,但我们希望在将来实现它。他们不能有空 body。解释器会报错。因此,我们使用 pass 语句构造一个什么都不做的 body。
对于user-defined函数,pass意味着什么都不做,但是对于一些库函数(包括third-party库),通常意味着它们的逻辑不是用纯Python代码写的,如NumPy
和Python标准库,为了追求高效运行,大部分函数都是用C语言编写的,并提供相应的Python接口。