Encapsulamento (modificadores de acesso: public, protected, private)

This commit is contained in:
Luiz Otávio
2022-11-15 10:54:21 -03:00
parent 2d7f0aa53e
commit edf4941ffc

41
aula133.py Normal file
View File

@@ -0,0 +1,41 @@
# Encapsulamento (modificadores de acesso: public, protected, private)
# Python NÃO TEM modificadores de acesso
# Mas podemos seguir as seguintes convenções
# (sem underline) = public
# pode ser usado em qualquer lugar
# _ (um underline) = protected
# não DEVE ser usado fora da classe
# ou suas subclasses.
# __ (dois underlines) = private
# "name mangling" (desfiguração de nomes) em Python
# _NomeClasse__nome_attr_ou_method
# só DEVE ser usado na classe em que foi
# declarado.
from functools import partial
class Foo:
def __init__(self):
self.public = 'isso é público'
self._protected = 'isso é protegido'
self.__exemplo = 'isso é private'
def metodo_publico(self):
# self._metodo_protected()
# print(self._protected)
print(self.__exemplo)
self.__metodo_private()
return 'metodo_publico'
def _metodo_protected(self):
print('_metodo_protected')
return '_metodo_protected'
def __metodo_private(self):
print('__metodo_private')
return '__metodo_private'
f = Foo()
# print(f.public)
print(f.metodo_publico())