私有类是否应该用下划线前缀?
我看到有些代码里的函数或常量前面加了下划线。我的理解是,这表示它们不应该被直接使用。我可以对类也这样做吗?
class _Foo(object):
pass
class __Bar(object):
pass
4 个回答
2
没错,这不仅仅是一种约定。当你用 import *
从这个模块导入内容时,以下划线开头的名字是不会被导入的。
6
是的,PEP8推荐在内部使用的类前加一个下划线。
我觉得加两个下划线大多数情况下不会有什么实际效果,因为它是用来让类属性的名字变得复杂的。一般来说,一个类并不是另一个类的属性(当然,它可以是,这种情况下Python会自动帮你处理名字的复杂化)。