Escolar Documentos
Profissional Documentos
Cultura Documentos
Python POO
• Por tanto, paradigma de programação nada mais é do que um padrão(modelo) a ser seguido na
programação.
• E cada objeto pode ter características (atributos) e ações (métodos) quem podem realizar.
O que é Programação Orientada a Objeto?
• Em POO podemos possuir classe e objetos.
Classe Pessoa {
• A classe é um modelo que define o que um objeto pode fazer e suas String nome;
características: int idade;
apresentar()
}
class NomeClasse:
Caso criar
Para o método precise usamos
um método, acessar outros métodos
a palavra def
def metodo(parametroOpcional): oumétodo
O atributos da classe,
pode o primeiro parâmetro
ter opcionalmente parâmetros
#conteudos do método
Igual a criardeve
umaser self.
função
Se seu método não tiver nenhuma linha, o
É equivalente
Python vai dar ao this do Java, PHP,
erro.
def metodo2(): JavaScript...
pass
Nesse caso usamos a palavra pass, em métodos
Porémpara
vazios na hora do objeto
não dar erro. usar, ignoramos esse
def metodo3(self, paramOpc): parâmetro:
#conteudos Oobjeto.metodo3(‘valor’)
mesmo vale para uma classe vázia
Praticando
• Crie uma classe Pessoa, que deve ter um método apresentar.
• O método apresentar por enquanto está vazio, mas no futuro irá acessar atributos da classe
class Pessoa:
def apresentar(self):
pass
Extra – Documentando Classes
• Caso deseje, pode documentar a classe no Python com três aspas:
def apresentar(self, nome, idade):
'''
Classe que apresenta a pessoa
Attributes:
nome(string): Nome da pessoa
idade(int): Idade da pessoa
'''
pass
• A vantagem é que ao usar algum editor é possível saber para que ele serve aquele método:
Construtor
• O que é o Construtor de uma classe?
▫ É o método que é executado junto da criação do objeto.
▫ Pode receber os parâmetros de inicialização do objeto.
class NomeClasse:
atributo1 = 0
def __init__(self, atributo2, atributo3 = 2):
self.atributo2 = param2
self.atributo3 = param3
self.atributo4 = []
Praticando
• Crie o construtor de pessoa, que deve receber nome e idade, e salvá-los como atributos da
classe.
class Pessoa:
def apresentar(self):
pass
Instanciando objeto
• Para instanciar um objeto basta importar, se em arquivos diferentes, e criar uma variável que
irá receber o nome da classe com parênteses (sem new):
obj = NomeClasse()
#Caso tenha parametros, passe, ignorando o self
obj = NomeClasse(10, 'teste')
class NomeClasse:
obj = NomeClasse()
def metodo(self, inteiro):
obj.metodo(10)
#faz algo
Praticando
• Atualize o método apresentar para que ele exiba o texto “Olá, meu nome é %NOME% e tenho
%IDADE% anos”, onde %NOME% e %IDADE% são os atributos da classe.
class Pessoa:
def apresentar(self):
print('Olá, meu nome é', self.nome, 'e tenho', self.idade, 'anos’)
class NomeClasse:
atributo1 = None #Publico
__atributo2 = None #Privado
atributo3 = None #Publico
Get e Set
• Sempre que um atributo tiver que ser acessado externamente, deixe-o publico.
• Se não tiver, torne-o privado.
• Por caso precise manipular um atributo ao recuperar ou editar seu valor, torne-o privado e use
as anotações de getter e setter.
Getter
• Para criar um Getter pode usar a anotação @property em cima do método get:
@property
obj = NomeClasse()
def atributo2(self):
print(obj.atributo2)
return self.__atributo2
Setter
• Para o seter usamos a anotação @nome_atributo.setter
• Para criar um enum, basta criar uma classe que herde de Enum do pacote enum e informar os
valores como atributos da classe:
class Genero(Enum):
HOMEM = 1,
MULHER = 2,
OUTRO = 3