diff --git a/oo/__init__.py b/oo/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/oo/carro.py b/oo/carro.py new file mode 100644 index 000000000..f7cc1c385 --- /dev/null +++ b/oo/carro.py @@ -0,0 +1,32 @@ +class carro: + pass + +NORTE = 'Norte' +LESTE = 'Leste' +SUL = 'Sul' +OESTE = 'Oeste' + +class direcao: + rotacao_a_direita_dct = {NORTE: LESTE, LESTE: SUL, SUL: OESTE, OESTE: NORTE} + rotacao_a_esquerda_dct = {NORTE: OESTE, OESTE: SUL, SUL: LESTE, LESTE: NORTE} + + def __init__(self): + self.valor = NORTE + + def girar_a_direita(self): + self.valor = self.rotacao_a_direita_dct[self.valor] + + def girar_a_esquerda(self): + self.valor = self.rotacao_a_esquerda_dct[self.valor] + +class motor: + def __init__(self): + self.velocidade = 0 + + def acelertar(self): + self.velocidade += 1 + + def frear(self): + self.velocidade -= 2 + self.velocidade = max(0, self.velocidade) + diff --git a/oo/pessoa.py b/oo/pessoa.py new file mode 100644 index 000000000..5af25b90d --- /dev/null +++ b/oo/pessoa.py @@ -0,0 +1,42 @@ +class Pessoa: + olhos = 2 + + def __init__(self, *filhos, nome=None, idade=70): + self.filhos = list(filhos) + self.nome = nome + self.idade = idade + + def cumprimentar(self): + return f'Ola {id(self)}' + + @staticmethod + def metodo_statico(): + return 42 + + @classmethod + def nome_e_atributos_de_classe(cls): + return f'{cls} - olhos {cls.olhos}' + +if __name__ == '__main__': + ricardo = Pessoa(nome='Ricardo') + antonio = Pessoa(ricardo, nome='Antonio') + print(Pessoa.cumprimentar(antonio)) + print(id(antonio)) + print(antonio.cumprimentar()) + print(antonio.nome) + print(antonio.idade) + for filho in antonio.filhos: + print(filho.nome) + del antonio.filhos + antonio.sobrenome = 'Arruda' + antonio.olhos = 4 + del antonio.olhos + print(antonio.__dict__) + print(ricardo.__dict__) + Pessoa.olhos = 3 + print(Pessoa.olhos) + print(antonio.olhos) + print(ricardo.olhos) + print(id(Pessoa.olhos), id(antonio.olhos), id(ricardo.olhos)) + print(Pessoa.metodo_statico(), ricardo.metodo_statico(), antonio.metodo_statico()) + print(Pessoa.nome_e_atributos_de_classe(), antonio.nome_e_atributos_de_classe())