From 1c763bae7ab45a797075cb5cc83ff2117bdc99cc Mon Sep 17 00:00:00 2001 From: Elton Castor Date: Tue, 16 Mar 2021 02:17:49 -0300 Subject: [PATCH 1/7] Criada a classe Pessoa --- 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 a42850e045b7031303f1b57783ba817e9c607507 Mon Sep 17 00:00:00 2001 From: Elton Castor Date: Tue, 16 Mar 2021 02:37:29 -0300 Subject: [PATCH 2/7] =?UTF-8?q?Criado=20o=20m=C3=A9todo=20cumprimentar?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- oo/pessoa.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/oo/pessoa.py b/oo/pessoa.py index e1da50e22..f9cc586bb 100644 --- a/oo/pessoa.py +++ b/oo/pessoa.py @@ -1,2 +1,10 @@ class Pessoa: - pass \ No newline at end of file + def cumprimentar(self): + return f'Olá {id(self)}' + + +if __name__ == '__main__': + p = Pessoa() + print(Pessoa.cumprimentar(p)) + print(id(p)) + print(p.cumprimentar()) From 92ff88559e7186d0e422c5b9e0f3e2809a315e97 Mon Sep 17 00:00:00 2001 From: Elton Castor Date: Tue, 16 Mar 2021 03:11:22 -0300 Subject: [PATCH 3/7] =?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 | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/oo/pessoa.py b/oo/pessoa.py index f9cc586bb..ff4461aeb 100644 --- a/oo/pessoa.py +++ b/oo/pessoa.py @@ -1,10 +1,15 @@ class Pessoa: + def __init__(self, nome=None, idade=35): + self.idade = idade + self.nome = nome + def cumprimentar(self): return f'Olá {id(self)}' if __name__ == '__main__': - p = Pessoa() + p = Pessoa('Elton') print(Pessoa.cumprimentar(p)) print(id(p)) print(p.cumprimentar()) + print(p.nome) From 4dcc08abc445fffcaf6392ad6afb23b47933f263 Mon Sep 17 00:00:00 2001 From: Elton Castor Date: Tue, 16 Mar 2021 03:20:14 -0300 Subject: [PATCH 4/7] Criado atributo complexo filhos --- oo/pessoa.py | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/oo/pessoa.py b/oo/pessoa.py index ff4461aeb..af1aa827e 100644 --- a/oo/pessoa.py +++ b/oo/pessoa.py @@ -1,5 +1,6 @@ class Pessoa: - def __init__(self, nome=None, idade=35): + def __init__(self, *filhos, nome=None, idade=35): + self.filhos = list(filhos) self.idade = idade self.nome = nome @@ -8,8 +9,14 @@ def cumprimentar(self): if __name__ == '__main__': - p = Pessoa('Elton') - print(Pessoa.cumprimentar(p)) - print(id(p)) - print(p.cumprimentar()) - print(p.nome) + nicolas = Pessoa(nome='Elton') + elton = Pessoa(nicolas, nome='Nicolas') + print(Pessoa.cumprimentar(elton)) + print(id(elton)) + print(elton.cumprimentar()) + print('') + print(elton.nome, elton.idade) + print(elton.filhos) + print('') + for filho in elton.filhos: + print(filho.nome) \ No newline at end of file From 75847d0801f61a9b4cfcd5e85ad3b93fe6c879f3 Mon Sep 17 00:00:00 2001 From: Elton Castor Date: Tue, 16 Mar 2021 03:28:31 -0300 Subject: [PATCH 5/7] =?UTF-8?q?Criado=20e=20removido=20atributo=20din?= =?UTF-8?q?=C3=A2mico=20de=20objeto=20do=20tipo=20Pessoa?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- oo/pessoa.py | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/oo/pessoa.py b/oo/pessoa.py index af1aa827e..6cc70d659 100644 --- a/oo/pessoa.py +++ b/oo/pessoa.py @@ -9,8 +9,8 @@ def cumprimentar(self): if __name__ == '__main__': - nicolas = Pessoa(nome='Elton') - elton = Pessoa(nicolas, nome='Nicolas') + nicolas = Pessoa(nome='Nicolas') + elton = Pessoa(nicolas, nome='Elton') print(Pessoa.cumprimentar(elton)) print(id(elton)) print(elton.cumprimentar()) @@ -19,4 +19,9 @@ def cumprimentar(self): print(elton.filhos) print('') for filho in elton.filhos: - print(filho.nome) \ No newline at end of file + print(filho.nome) + + elton.sobrenome = 'Castor' + del elton.filhos + print(elton.__dict__) + print(nicolas.__dict__) From aadd7eaa846a93f99e3c64f142d34f4875a1fd80 Mon Sep 17 00:00:00 2001 From: Elton Castor Date: Tue, 16 Mar 2021 03:37:30 -0300 Subject: [PATCH 6/7] Criado atributo de classe olhos --- oo/pessoa.py | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/oo/pessoa.py b/oo/pessoa.py index 6cc70d659..e5cef7359 100644 --- a/oo/pessoa.py +++ b/oo/pessoa.py @@ -1,11 +1,13 @@ class Pessoa: + olhos = 2 + def __init__(self, *filhos, nome=None, idade=35): self.filhos = list(filhos) self.idade = idade self.nome = nome def cumprimentar(self): - return f'Olá {id(self)}' + return f'Olá, " {id(self)} "' if __name__ == '__main__': @@ -14,14 +16,18 @@ def cumprimentar(self): print(Pessoa.cumprimentar(elton)) print(id(elton)) print(elton.cumprimentar()) - print('') + print(elton.nome, elton.idade) - print(elton.filhos) - print('') + # print(elton.filhos) for filho in elton.filhos: print(filho.nome) elton.sobrenome = 'Castor' del elton.filhos + + nicolas.olhos = 1 + del nicolas.olhos print(elton.__dict__) print(nicolas.__dict__) + Pessoa.olhos = 3 + print(nicolas.olhos) From 3170e16a0297e72759b2878e3e6af8512abac3b7 Mon Sep 17 00:00:00 2001 From: Elton Castor Date: Tue, 16 Mar 2021 04:59:21 -0300 Subject: [PATCH 7/7] Implementado os objetos motor, direcao e carro --- oo/carro.py | 87 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 87 insertions(+) create mode 100644 oo/carro.py diff --git a/oo/carro.py b/oo/carro.py new file mode 100644 index 000000000..8aa64334f --- /dev/null +++ b/oo/carro.py @@ -0,0 +1,87 @@ +class Carro: + def __init__(self, motor, direcao): + self.motor = motor + self.direcao = direcao + + def calcular_velocidade(self): + return self.motor.velocidade + + def acelerar(self): + self.motor.acelerar() + + def frear(self): + self.motor.frear() + + def calcular_direcao(self): + return self.direcao.valor + + def girar_a_direita(self): + self.direcao.girar_a_direita() + + def girar_a_esquerda(self): + self.direcao.girar_a_esquerda() + + +class Motor: + def __init__(self): + self.velocidade = 0 + + def acelerar(self): + self.velocidade += 1 + + def frear(self): + self.velocidade -= 2 + if self.velocidade < 0: + self.velocidade = 0 + + +CIMA = 'CIMA' +DIREITA = 'DIREITA' +BAIXO = 'BAIXO' +ESQUERDA = 'ESQUERDA' + + +class Direcao: + rotacao_direita_dicionario = {CIMA: DIREITA, DIREITA: BAIXO, BAIXO: ESQUERDA, ESQUERDA: CIMA} + rotacao_esquerda_dicionario = {CIMA: ESQUERDA, DIREITA: CIMA, BAIXO: DIREITA, ESQUERDA: BAIXO} + + def __init__(self): + self.valor = CIMA + + def girar_a_direita(self): + self.valor = self.rotacao_direita_dicionario[self.valor] + + def girar_a_esquerda(self): + self.valor = self.rotacao_esquerda_dicionario[self.valor] + + +if __name__ == '__main__': + motor = Motor() + motor.acelerar() + motor.acelerar() + motor.acelerar() + print(motor.velocidade) + motor.frear() + motor.frear() + motor.frear() + print(motor.velocidade) + + print('') + + direcao = Direcao() + + print(direcao.valor) + direcao.girar_a_direita() + print(direcao.valor) + + direcao.girar_a_esquerda() + print(direcao.valor) + + print('') + + carro = Carro(motor, direcao) + carro.acelerar() + print(carro.calcular_velocidade()) + print(carro.calcular_direcao()) + carro.girar_a_esquerda() + print(carro.calcular_direcao()) \ No newline at end of file