为什么Python中有各种各样的“_”下划线?分别有什么用?( 二 )


>>> class B(A):...def __method_name(self):...pass... >>> dir(B())['_A__method_name', '_B__method_name', ..., '_internal_use']这里的预期行为几乎等同于Java中的最终方法和C ++中的常规(非虚拟)方法 。
六. 在名称之前和之后加上双下划线(例如__init__)这些是 Python 使用的特殊方法名称 。 对于我们来说 , 这只是一个约定 , 即 Python 系统使用与用户定义的名称不冲突的名称的一种方式 。 然后 , 我们通常会覆盖这些方法并为 Python 调用它们时定义所需的行为 。 例如 , 在编写类时__init__重写方法 。
没有什么可以阻止我们编写自己的特殊方法名称(但是最好别这么做):
>>> class C(object):...def __mine__(self):...pass...>>> dir(C)... [..., '__mine__', ...]尽量不要使用这种命名方式 , 只需要让Python定义的特殊名称遵循该约定即可 。
参考链接:
Django官方文档:
Python官方文档:#private-variables
PEP515:
--END--
以上为本文所有内容 , 希望能帮助各位Python爱好者答疑解惑!
希望本文的同学 , 记得点赞哈~也可以关注我们!