您在这里:首页 > 深入 Python > 对象和面向对象 > 私有函数 | << >> | ||||
深入 Python从 Python 新手到专家 |
与大多数语言一样,Python 也有私有元素的概念
与大多数语言不同,Python 函数、方法或属性是私有的还是公共的完全由其名称决定。
如果 Python 函数、类方法或属性的名称以两个下划线开头(但不以两个下划线结尾),则它是私有的;其他所有内容都是公共的。Python 没有受保护的类方法的概念(只能在其自己的类和后代类中访问)。类方法要么是私有的(只能在其自己的类中访问),要么是公共的(可以从任何地方访问)。
在 MP3FileInfo 中,有两个方法:__parse 和 __setitem__。正如您已经讨论过的,__setitem__ 是一个特殊方法;通常,您可以通过对类实例使用字典语法来间接调用它,但它是公共的,如果您有充分的理由,也可以直接调用它(即使是从 fileinfo 模块外部)。但是,__parse 是私有的,因为它的名称开头有两个下划线。
![]() |
|
在 Python 中,所有特殊方法(如 __setitem__)和内置属性(如 __doc__)都遵循一个标准的命名约定:它们都以两个下划线开头和结尾。不要以这种方式命名您自己的方法和属性,因为这只会让您(和其他人)以后感到困惑。 |
>>> import fileinfo >>> m = fileinfo.MP3FileInfo() >>> m.__parse("/music/_singles/kairo.mp3")Traceback (innermost last): File "<interactive input>", line 1, in ? AttributeError: 'MP3FileInfo' instance has no attribute '__parse'
<< 介绍类属性 |
| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | |
总结 >> |