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

如何在Python中提取方法的文档字符串并移除无意义空格?

解决Python文档字符串多余缩进问题

刚好碰到过这个问题!Python标准库的inspect模块里有个完美的工具——cleandoc(),专门用来处理这种文档字符串的缩进问题,完全符合你的需求:它会移除那些为了代码排版而加的公共缩进,但保留文档里你故意设置的相对缩进,同时还会清理掉首尾的空白行。

先看第一个例子的修改版:

import inspect

class MyClass:
    def my_method(self):
        """This is the help message, on multiple lines.
        """
        pass

print(inspect.cleandoc(MyClass.my_method.__doc__))

执行结果就是:

This is the help message, on multiple lines.

再看第二个你关心的带有意缩进的例子:

import inspect

class MyClass2:
    def my_method(self):
        """This is the help message, on multiple lines.
            This one is intentionally more indented.
        """
        pass

print(inspect.cleandoc(MyClass2.my_method.__doc__))

执行结果完全符合你的期望:

This is the help message, on multiple lines.
This one is intentionally more indented.

原理说明

inspect.cleandoc()的工作逻辑很贴心:

  • 首先会去掉文档字符串首尾的空白行
  • 然后找出所有非空行中最小的缩进空格数(也就是那些为了对齐代码加的公共缩进)
  • 最后把每一行开头的这个最小缩进量去掉,但是如果某行的缩进比这个最小值多,多出来的部分会保留下来——这就正好保住了你故意设置的缩进格式

不用自己写正则或者手动处理,标准库直接搞定,稳得很!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.27 16:18:15