From bd19a2d560e4775985fcafd75c88e62554928490 Mon Sep 17 00:00:00 2001 From: Rodrigo Date: Fri, 28 May 2021 21:07:42 -0300 Subject: [PATCH 1/9] Classe Pessoa criada --- oo/__init__.py | 0 oo/pessoa.py | 2 ++ 2 files changed, 2 insertions(+) create mode 100644 oo/__init__.py create mode 100644 oo/pessoa.py diff --git a/oo/__init__.py b/oo/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/oo/pessoa.py b/oo/pessoa.py new file mode 100644 index 000000000..e1da50e22 --- /dev/null +++ b/oo/pessoa.py @@ -0,0 +1,2 @@ +class Pessoa: + pass \ No newline at end of file From 3df3a7203979006e3608310503901dd0885c612a Mon Sep 17 00:00:00 2001 From: Rodrigo Date: Fri, 28 May 2021 21:12:47 -0300 Subject: [PATCH 2/9] Classe Pessoa criada --- oo/pessoa.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/oo/pessoa.py b/oo/pessoa.py index e1da50e22..eb7c0a9c1 100644 --- a/oo/pessoa.py +++ b/oo/pessoa.py @@ -1,2 +1,2 @@ class Pessoa: - pass \ No newline at end of file + pass From c1a0a9a124e88a4efd11fcff6e155e349db369ee Mon Sep 17 00:00:00 2001 From: Rodrigo Date: Fri, 28 May 2021 21:31:52 -0300 Subject: [PATCH 3/9] =?UTF-8?q?Criado=20m=C3=A9todo=20cumprimentar?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- oo/pessoa.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/oo/pessoa.py b/oo/pessoa.py index eb7c0a9c1..0ba2870f8 100644 --- a/oo/pessoa.py +++ b/oo/pessoa.py @@ -1,2 +1,9 @@ class Pessoa: - pass + def cumprimentar(self): + return f'Olá {id(self)}' + +if __name__ == '__main__': + p = Pessoa() + print(Pessoa.cumprimentar(p)) + print(id(p)) + print(p.cumprimentar()) From ab8bd220d022447785b5a10e74696efc87faf216 Mon Sep 17 00:00:00 2001 From: Rodrigo Date: Sat, 29 May 2021 14:05:25 -0300 Subject: [PATCH 4/9] =?UTF-8?q?Criados=20atributos=20de=20inst=C3=A2ncia?= =?UTF-8?q?=20nome=20e=20idade?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- oo/pessoa.py | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/oo/pessoa.py b/oo/pessoa.py index 0ba2870f8..9271e4365 100644 --- a/oo/pessoa.py +++ b/oo/pessoa.py @@ -1,9 +1,19 @@ class Pessoa: + def __init__(self, nome=None, idade=34): + self.idade = idade + self.nome = nome + def cumprimentar(self): return f'Olá {id(self)}' if __name__ == '__main__': - p = Pessoa() + p = Pessoa('Vicente') print(Pessoa.cumprimentar(p)) print(id(p)) print(p.cumprimentar()) + print(p.nome) + p.nome = 'rodrigo' + print(p.nome) + print(p.idade) + + From 4d81be5cd1f8a1dcfb4806cb1d08f0699da15a17 Mon Sep 17 00:00:00 2001 From: Rodrigo Date: Sat, 29 May 2021 14:34:45 -0300 Subject: [PATCH 5/9] =?UTF-8?q?Criados=20atributos=20de=20inst=C3=A2ncia?= =?UTF-8?q?=20nome=20e=20idade?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- oo/pessoa.py | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/oo/pessoa.py b/oo/pessoa.py index 9271e4365..5452392cf 100644 --- a/oo/pessoa.py +++ b/oo/pessoa.py @@ -1,19 +1,22 @@ class Pessoa: - def __init__(self, nome=None, idade=34): + 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__': - p = Pessoa('Vicente') - print(Pessoa.cumprimentar(p)) - print(id(p)) - print(p.cumprimentar()) - print(p.nome) - p.nome = 'rodrigo' - print(p.nome) - print(p.idade) + 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}') From 0907d86e5821f72e9b07b12582695244c5c02d69 Mon Sep 17 00:00:00 2001 From: Rodrigo Date: Sat, 29 May 2021 14:35:52 -0300 Subject: [PATCH 6/9] Criado atributo complexo filhos --- oo/pessoa.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/oo/pessoa.py b/oo/pessoa.py index 5452392cf..14ace3b9a 100644 --- a/oo/pessoa.py +++ b/oo/pessoa.py @@ -18,5 +18,3 @@ def cumprimentar(self): print(rodrigo.idade) for filho in rodrigo.filhos: print(f'{filho.nome} é filho de {rodrigo.nome}') - - From 45acfd86fcf25ed8296efc5df028cd8379a485d1 Mon Sep 17 00:00:00 2001 From: Rodrigo Date: Sat, 29 May 2021 14:55:42 -0300 Subject: [PATCH 7/9] =?UTF-8?q?Criados=20e=20exclu=C3=ADdos=20atributos=20?= =?UTF-8?q?din=C3=A2micos=20de=20objeto=20do=20tipo=20Pessoa?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- oo/pessoa.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/oo/pessoa.py b/oo/pessoa.py index 14ace3b9a..cb5f62265 100644 --- a/oo/pessoa.py +++ b/oo/pessoa.py @@ -18,3 +18,9 @@ def cumprimentar(self): print(rodrigo.idade) for filho in rodrigo.filhos: print(f'{filho.nome} é filho de {rodrigo.nome}') + rodrigo.sobrenome = 'Pimentel' + del rodrigo.filhos + print(rodrigo.__dict__) + print(joaquim.__dict__) + print(vicente.__dict__) + From 66701992b0449ef41cf604de1bb3ab0610aa778c Mon Sep 17 00:00:00 2001 From: Rodrigo Date: Sun, 30 May 2021 20:59:16 -0300 Subject: [PATCH 8/9] Criado atributo de classe olhos --- oo/pessoa.py | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/oo/pessoa.py b/oo/pessoa.py index cb5f62265..57164b501 100644 --- a/oo/pessoa.py +++ b/oo/pessoa.py @@ -1,4 +1,6 @@ class Pessoa: + olhos = 2 + def __init__(self, *filhos, nome=None, idade=34): self.idade = idade self.nome = nome @@ -20,7 +22,14 @@ def cumprimentar(self): 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)) From 7df7cc13e043a4a9de509a782abbba754582b1c4 Mon Sep 17 00:00:00 2001 From: Rodrigo Date: Mon, 14 Jun 2021 23:36:51 -0300 Subject: [PATCH 9/9] =?UTF-8?q?Implementada=20a=20dire=C3=A7=C3=A3o?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- oo/carro.py | 102 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 102 insertions(+) create mode 100644 oo/carro.py 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