为什么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爱好者答疑解惑!
希望本文的同学 , 记得点赞哈~也可以关注我们!
- 看不上|为什么还有用户看不上华为Mate40系列来看看内行人怎么说
- 制药领域|为什么AI制药这么火,为什么是现在?
- 手机壳里头|为什么要在手机壳里面夹钱?10个有9个不懂,我才知道大有讲究
- 短视频|全球最火APP?抖音爆火背后离不开这几剂“猛药”为什么抖音能够这么火?
- 电商快递|包邮不香吗,为什么还有人加49元让小哥穿西装专车送快递?
- 团队|为什么项目管理非常重要?
- 猫腻|为什么拼多多上商品价格那么便宜还包邮?有什么猫腻?看完明白了
- 刷机|前几年满大街的“刷机”服务去哪里了,为什么大家都不爱刷机了?
- 手机|便宜没好货!为什么二手iPhone很便宜,这些手机都来自哪儿?
- 中国|相对论Vol.48丨一个“歪果仁”,为什么要在海外电商平台直播带中国货