封装的概念如何在Python中起作用?

问题描述

我正在学习将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)

当尝试测试对方法和属性的访问时,我意识到我仍然可以输入信息,因此我查找了有关此信息,并找到了诸如thisthis之类的链接,这些链接指示将属性和方法定义为保护和私有是我使用的方式,但是我发现这种link(用西班牙语,是我的语言)在其中,他们用示例解释了私有和保护属性的概念在Python中不存在

同时,我发现有些问题与我的疑问herehere有关。而且,当回顾第一个答案时,我看到它表示私有和受保护的概念,但是在答案(和问题)中,它们提出了一种由如何将事物定义为私有的语言定义的方式。 >

我的问题是,Python 3中如何提出封装的概念?

Obs:我试​​图在Python 3文档中搜索这些概念的参考,但是我找不到能澄清我疑问的东西。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...