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

仅含文档字符串的空函数/方法在Python中是否合法?

代码合法性解释与PEP规范说明

为什么这段代码能正常运行?

  • Python对函数/方法的要求是必须有合法的函数体,而文档字符串(docstring)本身就是一个合法的表达式语句。当函数/方法里只有docstring时,相当于函数体执行了一个字符串字面量(只是这个值没有被使用),完全符合Python的语法规则,不会触发语法错误。
  • __init__方法是空的也不影响类的实例化:Python中,类实例化时如果__init__没有额外逻辑,只是默认返回None,不会阻碍对象创建,所以a = A()能正常执行。
  • 代码最后调用print('works'),这是明确的输出语句,所以运行后会打印works。

相关PEP规范说明

PEP 8(Python代码风格指南)不禁止这种只放docstring的空函数/方法,但不推荐这么写。规范里明确建议,对于空的函数、方法或类,应该使用pass语句来显式标记空实现,比如:

class A:
    def __init__(self):
        """
        Some doc-string
        """
        pass
    def some_method(self):
        """
        Some other doc-string
        """
        pass

def say():
    """
    Well that's it, no doc-string
    """
    pass

用pass的好处是更直观,能让其他开发者一眼就看出这是有意留空的实现,而不是遗漏了代码,提升代码可读性和维护性。

内容的提问来源于stack exchange,提问作者Yash Ranjan

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 17:14:55