跳到内容

过多公共方法 (too-many-public-methods) (PLR0904)

源自 Pylint 代码检查工具。

此规则不稳定且处于预览状态。使用需要 --preview 标志。

作用

检查具有过多公共方法的类

默认情况下,此规则允许最多 20 个公共方法,具体由 lint.pylint.max-public-methods 选项配置。

为什么这不好?

具有许多公共方法的类更难理解和维护。

相反,考虑将类重构为单独的类。

示例

假设 lint.pylint.max-public-methods 设置为 5

class Linter:
    def __init__(self):
        pass

    def pylint(self):
        pass

    def pylint_settings(self):
        pass

    def flake8(self):
        pass

    def flake8_settings(self):
        pass

    def pydocstyle(self):
        pass

    def pydocstyle_settings(self):
        pass

建议改为

class Linter:
    def __init__(self):
        self.pylint = Pylint()
        self.flake8 = Flake8()
        self.pydocstyle = Pydocstyle()

    def lint(self):
        pass


class Pylint:
    def lint(self):
        pass

    def settings(self):
        pass


class Flake8:
    def lint(self):
        pass

    def settings(self):
        pass


class Pydocstyle:
    def lint(self):
        pass

    def settings(self):
        pass

Options (选项)