¿Qué es un campo de variable privada en Python?
De forma predeterminada, las funciones miembro y las variables miembro en Python son públicas. No hay palabras clave como pública y privada para modificar las funciones miembro y las variables miembro en Python.
Para definir una variable privada en Python, solo necesita agregar "__" dos guiones bajos antes del nombre de la variable o el nombre de la función, entonces la función o variable es privada.
Alcance, un concepto de programación En términos generales, el nombre utilizado en un fragmento de código de programa no siempre es válido/disponible, y el alcance del código que limita la disponibilidad de este nombre es este nombre.
El uso del alcance mejora la localidad de la lógica del programa, mejora la confiabilidad del programa y reduce los conflictos de nombres.
El dominio de la variable privada es el rango disponible de variables privadas.
Internamente, Python utiliza una técnica de manipulación de nombres para reemplazar __membername con _classname__membername. Es decir, en la definición interna de la clase, todos los nombres que comienzan con guiones bajos dobles se "traducen" al anterior. Agregue un guión bajo único y la forma del nombre de la clase.
Por ejemplo: para garantizar que no se pueda acceder a las variables privadas fuera de la clase, Python reemplazará automáticamente el nombre de la variable privada __spam que definimos dentro de la clase con
_classname__spam ( Nota: el nombre de clase está precedido por un guión bajo y el spam está precedido por dos guiones bajos. Por lo tanto, cuando los usuarios accedan a __spam externamente, se les indicará que no se puede encontrar la variable correspondiente. ?
Las variables privadas y los métodos privados en Python aún son accesibles; el método de acceso es el siguiente:
Variables privadas: instancia._nombre de clase__nombre de variable
Método privado : instancia._nombre de clase__nombre de método()
De hecho, Python no tiene soporte de privatización real, pero puede usar guiones bajos para obtener pseudoprivacidad. ?¡Intente evitar definir variables que comiencen con un guión bajo!
(1)_xxx? Las variables miembro que comienzan con "guión bajo único" se denominan variables protegidas, lo que significa que solo las instancias de clase y las instancias de subclase pueden acceder a estas variables, y es necesario acceder a ellas a través de la interfaz proporcionada. por la clase; no se pueden utilizar 'desde la importación del módulo *'.
(2) Nombres de métodos/variables privadas en la clase __xxx (las funciones de Python también son objetos, por lo que está bien llamar variables miembro a métodos miembro). El "doble guión bajo" comienza con miembros privados, lo que significa que sólo el objeto de clase puede acceder a estos datos, ni siquiera los objetos de subclase.
(3) __xxx__ es un nombre definido por el sistema, con un "doble guión bajo" antes y después, que representa un identificador especial para un método especial en Python, como __init__() que representa el constructor. de una clase.
Para obtener más conocimientos de Python, preste atención a la columna del tutorial en vídeo de Python.