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..8fcaf1445 --- /dev/null +++ b/oo/carro.py @@ -0,0 +1,102 @@ +""" + + + Exemplo: + >>> #Testando motor + >>> motor = Motor() + >>> motor.velocidade + 0 + >>> motor.acelerar() + >>> motor.velocidade + 1 + >>> motor.acelerar() + >>> motor.velocidade + 2 + >>> motor.acelerar() + >>> motor.velocidade + 3 + >>> motor.frear() + >>> motor.velocidade + 1 + >>> motor.frear() + >>> motor.velocidade + 0 + >>> #Testando Direção + >>> direcao = Direcao() + >>> direcao.valor + 'Norte' + >>> direcao.girar_a_direita() + >>> direcao.valor + 'Leste' + >>> direcao.girar_a_direita() + >>> direcao.valor + 'Sul' + >>> direcao.girar_a_direita() + >>> direcao.valor + 'Oeste' + >>> direcao.girar_a_direita() + >>> direcao.valor + 'Norte' + >>> direcao.girar_a_esquerda() + >>> direcao.valor + 'Oeste' + >>> direcao.girar_a_esquerda() + >>> direcao.valor + 'Sul' + >>> direcao.girar_a_esquerda() + >>> direcao.valor + 'Leste' + >>> direcao.girar_a_esquerda() + >>> direcao.valor + 'Norte' + >>> carro. Carro(direcao, motor) + >>> carro.calcular_velocidade() + + + +""" + +NORTE = 'Norte' +SUL = 'Sul' +LESTE = 'Leste' +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 acelerar(self): + self.velocidade +=1 + + def frear(self): + self.velocidade -=2 + self.velocidade = max(0, self.velocidade) + +if __name__ == '__main__': + motor = Motor() + print(motor.velocidade) + motor.acelerar() + print(motor.velocidade) + motor.acelerar() + print(motor.velocidade) + motor.acelerar() + print(motor.velocidade) + motor.frear() + print(motor.velocidade) + motor.frear() + print(motor.velocidade) \ No newline at end of file diff --git a/oo/pessoa.py b/oo/pessoa.py new file mode 100644 index 000000000..57164b501 --- /dev/null +++ b/oo/pessoa.py @@ -0,0 +1,35 @@ +class Pessoa: + olhos = 2 + + def __init__(self, *filhos, nome=None, idade=34): + self.idade = idade + self.nome = nome + self.filhos = list(filhos) + + def cumprimentar(self): + return f'Olá {id(self)}' + +if __name__ == '__main__': + joaquim = Pessoa(nome='Joaquim') + vicente = Pessoa(nome='Vicente') + rodrigo = Pessoa(joaquim,vicente, nome='Rodrigo') + print(Pessoa.cumprimentar(rodrigo)) + print(id(rodrigo)) + print(rodrigo.cumprimentar()) + print(rodrigo.nome) + print(rodrigo.idade) + for filho in rodrigo.filhos: + print(f'{filho.nome} é filho de {rodrigo.nome}') + rodrigo.sobrenome = 'Pimentel' + del rodrigo.filhos + rodrigo.olhos = 1 + del rodrigo.olhos + print(rodrigo.__dict__) + print(joaquim.__dict__) + print(vicente.__dict__) + Pessoa.olhos = 3 + print(Pessoa.olhos) + print(rodrigo.olhos) + print(vicente.olhos) + print(id(Pessoa.olhos),id(joaquim.olhos), id(rodrigo.olhos)) +