You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何Python中空函数仅用docstring即可满足定义要求?

为什么Python里函数仅写文档字符串就能替代空操作?

你会发现Python有个有意思的特性:下面两段代码的效果完全一样:

def do_nothing():
    """Does nothing."""

和

def do_nothing():
    ...

有人提到过:"如果给函数加了文档字符串,甚至不需要在文档字符串后面加任何语句。"

你可能会疑惑,Python语言参考里说函数定义要求函数体包含语句,但查语句定义文档时,没找到把Ellipsis或文档字符串列为有效语句的说明,那为什么文档字符串能当空操作?

其实原因很简单:

  • 文档字符串本质是字符串字面量表达式,而Python里单独的表达式本身就是合法的「表达式语句」——执行这类语句时,Python会计算表达式的值,但不会把它赋值给变量或做其他操作,所以对程序运行来说相当于空操作,刚好满足函数体必须有语句的要求。
  • 同理,...是Python里的Ellipsis对象,它本身也是一个表达式,单独作为语句时同样属于合法的表达式语句,执行后也不会产生任何实际副作用,和文档字符串起到的效果一致。

你没在语句定义里直接看到这两个的原因,是因为它们都归属于更宽泛的「表达式语句」类别,而不是单独列出来的特殊语句类型。

内容的提问来源于stack exchange,提问作者Ariba Siddiqi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 19:02:37