Encapsulamento (modificadores de acesso: public, protected, private)
This commit is contained in:
41
aula133.py
Normal file
41
aula133.py
Normal 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())
|
||||||
Reference in New Issue
Block a user