| You are here: Inicio > Inmersión en Python > Objetos y orientación a objetos > Funciones privadas | << >> | ||||
Inmersión en PythonPython de novato a experto |
|||||
Como muchos lenguajes, Python tiene el concepto de elementos privados:
Al contrario que en muchos otros lenguajes, la privacidad de una función, método o atributo de Python viene determinada completamente por su nombre.
Si el nombre de una función, método de clase o atributo en Python empieza con (pero no termina en) dos caracteres guión bajo (_), es privado; todo lo demás es público. Python no tiene concepto de métodos de clase protected (accesibles sólo desde su propia clase y descendientes). Los métodos de clase son privados (accesibles sólo desde su clase) o públicos (accesibles a cualquiera).
En MP3FileInfo, hay dos métodos: __parse y __setitem__. Como ya hemos hablado, __setitem__ es un método especial; normalmente, lo llamará de forma indirecta usando la sintaxis de diccionarios en una instancia de clase, pero es pública, y podría llamarla directamente (incluso desde fuera del módulo fileinfo) si tuviera una poderosa razón. Sin embargo, __parse es privada, porque tiene dos guiones bajos al principio de su nombre.
| En Python, todos los métodos especiales (como __setitem__) y atributos incorporados (como __doc__) siguen una convención estándar: empiezan y terminan con dos guiones bajos. No ponga a sus propios métodos ni atributos nombres así, porque sólo le confudirán a usted (y otros) más adelante. | |
>>> 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'
<< Presentación de los atributos de clase |
| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | |
Resumen >> |