Python样式问题:支持类作为内部类?

我喜欢使用语言中内置的结构来组织我的代码.但有一种情况我不能保持一致,仅仅是因为我没有看到明确的最佳方式.它是关于支持类,即由另一个类在内部专门使用的类:我是将它们作为内部类还是单独的类.

内部课程:

class Complicated:
    class Utility1:
        pass
    class Utility2:
        pass
    pass

单独的课程:

class Complicated:
    pass

class Utility1:
    pass

class Utility2:
    pass

内部类具有在使用它们的唯一类中作用域的优点.但问题是由于缩进,我得到的代码空间更少.

外课没有优势也没有劣势.每当我写支持课时,我都厌倦了总是花费精力,想知道这个愚蠢的问题.

我的问题是,任何拥有丰富python经验的人是否可以建议是否有最佳实践?即使答案是“它取决于”,如果它有一个比我更有经验的人,我们将不胜感激.

最佳答案 我会建议

class Complicated:
    pass

class _Utility1:
    pass

class _Utility2:
    pass

并将所有这些放在自己的模块中.前导_表示实用程序类仅供内部使用(对于它的内容,它们不会从模块导入导入*;但我不喜欢这样).

编辑:引自PEP 8

Classes for internal use have a leading underscore in addition.

点赞