问题描述
我正在学习将Python与OOP结合使用,并在回顾封装的概念时(定义类的属性和方法的访问和修改程度-我以这种方式理解了这一概念)找到的信息告诉我,要将方法和属性定义为受保护的和私有的,在命名它们时必须使用“ _”和“ __”。例如:
class Mueble:
_marca = "Tecnot"
def __init__(self,tipo,marca,material):
self.tipo = tipo # atributo de tipo público
self._marca = marca # atributo de tipo protegido (solo se puede acceder desde la clase y sus clases hijas)
self.__material = material # atributo de tipo privado (solo se puede acceder desde la clase)
def mostrar_atrib_proteg(self): # método público
return self._marca
def _desarmar(self): # método protegido
print("Se ha desarmado el mueble")
def __romper(self): # método privado
print("Se ha destruido el mueble")
primerMueble = Mueble("silla","Duramax","caoba")
print("propiedad pública",primerMueble.tipo) # mostrando un atributo público
print("propiedad protegida",primerMueble._marca) # mostrando un atributo protegido
print("accediendo a la propiedad privada",primerMueble._Mueble__material) # mostrando un atributo privado (a través de la clase)
primerMueble.mostrar_atrib_proteg() # ejecutando un método publico
primerMueble._desarmar() # ejecutando un método protegido
primerMueble._Mueble__romper() # ejecutando un método privado (a través de la clase)
当尝试测试对方法和属性的访问时,我意识到我仍然可以输入信息,因此我查找了有关此信息,并找到了诸如this和this之类的链接,这些链接指示将属性和方法定义为保护和私有是我使用的方式,但是我发现这种link(用西班牙语,是我的语言)在其中,他们用示例解释了私有和保护属性的概念在Python中不存在
同时,我发现有些问题与我的疑问here和here有关。而且,当回顾第一个答案时,我看到它表示私有和受保护的概念,但是在答案(和问题)中,它们提出了一种由如何将事物定义为私有的语言定义的方式。 >
我的问题是,Python 3中如何提出封装的概念?
Obs:我试图在Python 3文档中搜索这些概念的参考,但是我找不到能澄清我疑问的东西。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)