Directorio de artículos
Propiedades y métodos privados
En el desarrollo real, algunas propiedades o métodos de un objeto solo se pueden usar dentro del objeto, pero no se puede acceder a ellos desde el exterior. En este caso, se pueden definir propiedades y métodos privados.
definir método
Al definir una propiedad o un método, agregue dos guiones bajos antes del nombre de la propiedad o del método __
para definir una propiedad o un método privado.
class Person:
def __init__(self,name,age):
self.name = name
self.age = age
self.__money = 2000 # 使用 __ 修饰的属性,是私有属性
def __shopping(self, cost):
self.__money -= cost # __money 只能在对象内部使用
print('还剩下%d元' % self.__money)
def test(self):
self.__shopping(200) # __shopping 方法也只能在对象内部使用
p = Person('张三',18)
# print(p.__money) 这里会报错,不能直接访问对象内部的私有属性
p.test()
# p.__shopping() 这里会报错,__shopping 只能在对象内部使用,外部无法访问
Acceso a propiedades y métodos privados
Las propiedades privadas no se pueden usar directamente y los métodos privados no se pueden llamar directamente. Sin embargo, con algo de código, también podemos acceder a las propiedades y métodos privados de un objeto de forma externa.
entrevista directa
Cómo usar: agregar antes del nombre de la propiedad privada o del método
_类名
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
self.__money = 2000
def __shopping(self, cost):
self.__money -= cost
p = Person('李四', 20)
print(p._Person__money) # 使用对象名._类名__私有属性名 可以直接访问对象的私有属性
p._Person__shopping(100) # 使用对象名._类名__函数名 可以直接调用对象的私有方法
print(p._Person__money)
Nota: ¡En desarrollo, no recomendamos enfáticamente usar
对象名._类名__私有属性名
el método para acceder a las propiedades privadas del objeto!
Definir métodos para acceder a variables privadas
En el desarrollo real, si la variable del objeto está __
decorada con , significa que es una variable privada y no se recomienda usarla y modificarla directamente desde el exterior. Si insiste en modificar este atributo, puede usar el método de definición de métodos get y set para lograrlo.
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
self.__money = 2000 # __money 是私有变量,外部无法访问
def get_money(self): # 定义了get_money 方法,在这个方法里获取到 __money
return self.__money # 内部可以访问 __money 变量
def set_money(self, money): # 定义了set_money 方法,在这个方法里,可以修改 __money
self.__money = money
p = Person('王五', 21)
# 外部通过调用 get_money 和 set_money 这两个公开方法获取和修改私有变量
print(p.get_money())
p.set_money(8000)
print(p.get_money())
Caso avanzado
[Python] Python se da cuenta del juego de adivinanzas: ¡desafía tu inteligencia y tu suerte!
[python] Use Selenium para obtener entradas (2023 Blog Star)
[Xiaobai debe ver] Python rastrea un ejemplo de datos de jugadores de la NBA
[Xiaobai debe ver] Visualización y procesamiento de datos del rastreador de Python
[Imprescindible para Xiaobai] Use Python para generar una lista personalizada de documentos de Word
Procesamiento y visualización de datos geoespaciales usando geopandas y shapely (.shp)
Utilice selenio para rastrear los datos de la lista de películas de Maoyan
Explicación detallada del principio y la implementación del algoritmo de mejora de imagen Retinex
Primeros pasos con los reptiles (1): aprenda los conceptos básicos y las habilidades de los reptiles
Conceptos básicos de programación orientada a objetos de Python y código de muestra
Guía de operación de archivos de Python: codificación, lectura, escritura y manejo de excepciones
Conjunto de herramientas de automatización de Selenium - Guía completa y tutoriales
Tutorial de los conceptos básicos del rastreador web de Python avanzados al combate real
Tutorial de procesamiento y análisis de datos de Pandas: desde lo básico hasta el combate real
Explicación detallada de los tipos de datos de uso común y las operaciones relacionadas en Python