From abe58b6d399ae94715258fd6517388fea3acb386 Mon Sep 17 00:00:00 2001 From: Edson Date: Fri, 17 Aug 2018 14:50:21 -0300 Subject: [PATCH 01/17] 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 2d11eb6b274186255060cafe257523a3015d05ce Mon Sep 17 00:00:00 2001 From: Edson Date: Fri, 17 Aug 2018 15:37:47 -0300 Subject: [PATCH 02/17] =?UTF-8?q?Criada=20a=20Classe=20Pessoa=20+=20coment?= =?UTF-8?q?=C3=A1rio?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- oo/pessoa.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/oo/pessoa.py b/oo/pessoa.py index e1da50e22..e6f70e34c 100644 --- a/oo/pessoa.py +++ b/oo/pessoa.py @@ -1,2 +1,4 @@ +# criação da classe pessoa class Pessoa: - pass \ No newline at end of file + pass + From bb5f42dd2e4363a80ca74ea1f3d369d37e6070f3 Mon Sep 17 00:00:00 2001 From: Edson Date: Fri, 17 Aug 2018 16:10:38 -0300 Subject: [PATCH 03/17] =?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 | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/oo/pessoa.py b/oo/pessoa.py index e6f70e34c..0e06d3431 100644 --- a/oo/pessoa.py +++ b/oo/pessoa.py @@ -1,4 +1,13 @@ # criação da classe pessoa class Pessoa: - pass + #criação do método + def cumprimentar(self): + return f'Olá {id(self)}' + +if __name__ =='__main__': + p = Pessoa() + print(Pessoa.cumprimentar(p)) + print(id(p)) + print(p.cumprimentar()) + From 1669df0bdfc0b21c82d23d7916994c2a824819db Mon Sep 17 00:00:00 2001 From: Edson Date: Fri, 17 Aug 2018 17:05:39 -0300 Subject: [PATCH 04/17] =?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 | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/oo/pessoa.py b/oo/pessoa.py index 0e06d3431..40e427511 100644 --- a/oo/pessoa.py +++ b/oo/pessoa.py @@ -1,13 +1,20 @@ # criação da classe pessoa class Pessoa: + def __init__(self, nome = None, idade=35): + self.idade = idade + self.nome = nome + + #criação do método def cumprimentar(self): return f'Olá {id(self)}' if __name__ =='__main__': - p = Pessoa() + p = Pessoa('Jane') print(Pessoa.cumprimentar(p)) print(id(p)) print(p.cumprimentar()) - - + print(p.nome) + p.nome = 'Edson' + print(p.nome) + print(p.idade) From adae2a668b4f7b9c5be14623b48ab74ea7599b44 Mon Sep 17 00:00:00 2001 From: Edson Date: Sat, 18 Aug 2018 15:20:03 -0300 Subject: [PATCH 05/17] Criado atributo complexo filhos --- oo/pessoa.py | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/oo/pessoa.py b/oo/pessoa.py index 40e427511..05c79f2d3 100644 --- a/oo/pessoa.py +++ b/oo/pessoa.py @@ -1,8 +1,9 @@ # criação da classe pessoa class Pessoa: - def __init__(self, nome = None, idade=35): + def __init__(self, *filhos, nome = None, idade=35): self.idade = idade self.nome = nome + self.filhos = list(filhos) #criação do método @@ -10,11 +11,13 @@ def cumprimentar(self): return f'Olá {id(self)}' if __name__ =='__main__': - p = Pessoa('Jane') - print(Pessoa.cumprimentar(p)) - print(id(p)) - print(p.cumprimentar()) - print(p.nome) - p.nome = 'Edson' - print(p.nome) - print(p.idade) + renzo = Pessoa(nome='Renzo') + luciano = Pessoa(renzo, nome='Luciano') + print(Pessoa.cumprimentar(luciano)) + print(id(luciano)) + print(luciano.cumprimentar()) + print(luciano.nome) + print(luciano.idade) + for filho in luciano.filhos: + print(filho.nome) + print(luciano.filhos) \ No newline at end of file From 87e161d798d4e754d37523ffda42f78ab95a1311 Mon Sep 17 00:00:00 2001 From: Edson Date: Sun, 26 Aug 2018 23:14:51 -0300 Subject: [PATCH 06/17] =?UTF-8?q?Criado=20e=20removido=20atributo=20din?= =?UTF-8?q?=C3=A2mico=20de=20objetos=20do=20tipo=20Pessoa?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- oo/pessoa.py | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/oo/pessoa.py b/oo/pessoa.py index 05c79f2d3..ef024cbaf 100644 --- a/oo/pessoa.py +++ b/oo/pessoa.py @@ -1,5 +1,7 @@ # criação da classe pessoa class Pessoa: + olhos = 2 + def __init__(self, *filhos, nome = None, idade=35): self.idade = idade self.nome = nome @@ -10,6 +12,15 @@ def __init__(self, *filhos, nome = None, idade=35): def cumprimentar(self): return f'Olá {id(self)}' + @staticmethod + def metodo_estatico(): + return 42 + + @classmethod + def nome_e_atributos_de_classe(cls): + return f'{cls} - olhos {cls.olhos}' + + if __name__ =='__main__': renzo = Pessoa(nome='Renzo') luciano = Pessoa(renzo, nome='Luciano') @@ -20,4 +31,16 @@ def cumprimentar(self): print(luciano.idade) for filho in luciano.filhos: print(filho.nome) - print(luciano.filhos) \ No newline at end of file + luciano.sobrenome = 'Ramalho' + del luciano.filhos + luciano.olhos = 1 + del luciano.olhos + print(renzo.__dict__) + print(luciano.__dict__) + Pessoa.olhos = 3 + print(Pessoa.olhos) + print(luciano.olhos) + print(renzo.olhos) + print(id(Pessoa.olhos), id(luciano.olhos), id(renzo.olhos)) + print(Pessoa.metodo_estatico(), luciano.nome_e_atributos_de_classe()) + From 6e1c79c7fc531af8fd7762eb925c7733d26cf2a2 Mon Sep 17 00:00:00 2001 From: Edson Date: Mon, 27 Aug 2018 00:09:42 -0300 Subject: [PATCH 07/17] =?UTF-8?q?exerc=C3=ADcio=20de=20composi=C3=A7=C3=A3?= =?UTF-8?q?o?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- oo/carro.py | 102 +++++++++++++++++++++++++++++++++++++++++++++++++++ oo/pessoa.py | 8 ++-- 2 files changed, 107 insertions(+), 3 deletions(-) create mode 100644 oo/carro.py diff --git a/oo/carro.py b/oo/carro.py new file mode 100644 index 000000000..1e915507c --- /dev/null +++ b/oo/carro.py @@ -0,0 +1,102 @@ + + + +''' +você deve criar uma classe carro que vai possuir dois atributos compostos por outras classes: + +1) Motor +2) Direção + +O motor controlará a velocidade. Terá os seguintes atributos: +1) atributo de dado velocidade +2) método acelerar, que deverá incrementar a velocidade de uma unidade +3) Método frear que deverá decrementar a velocidade em 2 unidades + +A direção terá a responsabilidade de controlar a direção. Ela oferecerá os atributos: +1- valor de direção com valores possíveis: Norte, Sul, Leste, Oeste +2 - Método girar à direita +3 - Método girar à esquerda + + N +O L + S + +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() +0 +>>> carro.acelerar() +>>> carro.calcular_velocidade() +1 +>>> carro.acelerar() +>>> carro.calcular_velocidade() +2 +>>> carro.frear() +>>> carro.calcular_velocidade() +0 +>>> carro.calcular_direcao() +>>> 'Norte' + +>>> carro.girar_a_direita() +>>> carro.calcular_direcao() +>>> 'Leste' + +>>> carro.girar_a_direita() +>>> carro.calcular_direcao() +>>> 'Norte' + +>>> carro.girar_a_direita() +>>> carro.calcular_direcao() +>>> 'Oeste ' + +''' +class Carro: + +#exercio de composição diff --git a/oo/pessoa.py b/oo/pessoa.py index 05c79f2d3..cb2e1d9de 100644 --- a/oo/pessoa.py +++ b/oo/pessoa.py @@ -1,9 +1,10 @@ # criação da classe pessoa class Pessoa: - def __init__(self, *filhos, nome = None, idade=35): + def __init__(self, *filhos, nome = None, idade=48): + #atributos da classe Pessoa self.idade = idade self.nome = nome - self.filhos = list(filhos) + self.filhos = list(filhos) #objeto complexo #criação do método @@ -11,7 +12,7 @@ def cumprimentar(self): return f'Olá {id(self)}' if __name__ =='__main__': - renzo = Pessoa(nome='Renzo') + renzo = Pessoa(nome='Renzo') #filho luciano = Pessoa(renzo, nome='Luciano') print(Pessoa.cumprimentar(luciano)) print(id(luciano)) @@ -20,4 +21,5 @@ def cumprimentar(self): print(luciano.idade) for filho in luciano.filhos: print(filho.nome) + print(luciano.filhos) \ No newline at end of file From 52bb2cfd3465c90c01e5b20a22d3dbbd747b493a Mon Sep 17 00:00:00 2001 From: Edson Date: Mon, 27 Aug 2018 00:11:23 -0300 Subject: [PATCH 08/17] =?UTF-8?q?exerc=C3=ADcio=20de=20composi=C3=A7=C3=A3?= =?UTF-8?q?o?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- oo/carro.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/oo/carro.py b/oo/carro.py index 1e915507c..f8e70af7f 100644 --- a/oo/carro.py +++ b/oo/carro.py @@ -5,7 +5,7 @@ você deve criar uma classe carro que vai possuir dois atributos compostos por outras classes: 1) Motor -2) Direção +2) Direção -- O motor controlará a velocidade. Terá os seguintes atributos: 1) atributo de dado velocidade From 1915221d0c6e1a6ff0980cbcb605c3abb2e904cb Mon Sep 17 00:00:00 2001 From: Edson Date: Mon, 27 Aug 2018 00:13:02 -0300 Subject: [PATCH 09/17] =?UTF-8?q?exerc=C3=ADcio=20de=20composi=C3=A7=C3=A3?= =?UTF-8?q?o?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- oo/carro.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/oo/carro.py b/oo/carro.py index f8e70af7f..1e2810ba8 100644 --- a/oo/carro.py +++ b/oo/carro.py @@ -97,6 +97,5 @@ >>> 'Oeste ' ''' -class Carro: -#exercio de composição + From b77eab1fe2d014b935176cc41d2ff8bb2679634c Mon Sep 17 00:00:00 2001 From: Edson Date: Tue, 28 Aug 2018 19:39:04 -0300 Subject: [PATCH 10/17] Criado atributo de classe olhos --- oo/pessoa.py | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/oo/pessoa.py b/oo/pessoa.py index 05c79f2d3..70ab98404 100644 --- a/oo/pessoa.py +++ b/oo/pessoa.py @@ -1,5 +1,7 @@ # criação da classe pessoa class Pessoa: + olhos = 2 #atributo default ou atributo de classe + def __init__(self, *filhos, nome = None, idade=35): self.idade = idade self.nome = nome @@ -10,6 +12,16 @@ def __init__(self, *filhos, nome = None, idade=35): def cumprimentar(self): return f'Olá {id(self)}' + @staticmethod + def metodo_estatico(): + return 42 + + @classmethod + def nome_e_atributos_de_classe(cls): + return f'{cls} - olhos {cls.olhos}' + + + if __name__ =='__main__': renzo = Pessoa(nome='Renzo') luciano = Pessoa(renzo, nome='Luciano') @@ -20,4 +32,13 @@ def cumprimentar(self): print(luciano.idade) for filho in luciano.filhos: print(filho.nome) - print(luciano.filhos) \ No newline at end of file + luciano.sobrenome = 'Ramalho' + del luciano.filhos + luciano.olhos = 1 + del luciano.olhos + print(luciano.__dict__) + print(renzo.__dict__) + Pessoa.olhos = 3 + print(renzo.olhos) + print(id(Pessoa.olhos), id(luciano.olhos), id(renzo.olhos)) + From 12413b9472b828ebcd1b448cb21c33dfdb4c110a Mon Sep 17 00:00:00 2001 From: Edson Date: Tue, 28 Aug 2018 19:42:54 -0300 Subject: [PATCH 11/17] Criado atributo de classe olhos --- oo/pessoa.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/oo/pessoa.py b/oo/pessoa.py index 70ab98404..32978d4a5 100644 --- a/oo/pessoa.py +++ b/oo/pessoa.py @@ -1,6 +1,6 @@ # criação da classe pessoa class Pessoa: - olhos = 2 #atributo default ou atributo de classe + olhos = 2 #atributo defautl ou atributo de classe def __init__(self, *filhos, nome = None, idade=35): self.idade = idade From 255b0ca4fba601dc60cd024876e625ab0cc4d674 Mon Sep 17 00:00:00 2001 From: Edson Date: Tue, 28 Aug 2018 19:52:03 -0300 Subject: [PATCH 12/17] =?UTF-8?q?Criados=20m=C3=A9todos=20de=20classe?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- oo/pessoa.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/oo/pessoa.py b/oo/pessoa.py index 32978d4a5..6f55a81ea 100644 --- a/oo/pessoa.py +++ b/oo/pessoa.py @@ -12,12 +12,12 @@ def __init__(self, *filhos, nome = None, idade=35): def cumprimentar(self): return f'Olá {id(self)}' - @staticmethod + @staticmethod #decorator def metodo_estatico(): return 42 @classmethod - def nome_e_atributos_de_classe(cls): + def nome_e_atributos_de_classe(cls): #cls alusão à palavra class (Pessoa) return f'{cls} - olhos {cls.olhos}' @@ -39,6 +39,10 @@ def nome_e_atributos_de_classe(cls): print(luciano.__dict__) print(renzo.__dict__) Pessoa.olhos = 3 + print(Pessoa.olhos) + print(luciano.olhos) print(renzo.olhos) print(id(Pessoa.olhos), id(luciano.olhos), id(renzo.olhos)) + print(Pessoa.metodo_estatico(), luciano.metodo_estatico()) + print(Pessoa.nome_e_atributos_de_classe(), luciano.nome_e_atributos_de_classe()) From 55ac8a9845def573c79167d294b49d3a30d80254 Mon Sep 17 00:00:00 2001 From: Edson Date: Tue, 28 Aug 2018 19:53:27 -0300 Subject: [PATCH 13/17] =?UTF-8?q?Criados=20m=C3=A9todos=20de=20classe=20(a?= =?UTF-8?q?tributos=20atrelados=20=C3=A0=20classe)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- oo/pessoa.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/oo/pessoa.py b/oo/pessoa.py index 6f55a81ea..3b6da999f 100644 --- a/oo/pessoa.py +++ b/oo/pessoa.py @@ -17,7 +17,7 @@ def metodo_estatico(): return 42 @classmethod - def nome_e_atributos_de_classe(cls): #cls alusão à palavra class (Pessoa) + def nome_e_atributos_de_classe(cls): #cls alusão palavra class (Pessoa) return f'{cls} - olhos {cls.olhos}' From 927c8d8bbb24fc1e2edd6a93c0594f0c48bc4777 Mon Sep 17 00:00:00 2001 From: Edson Date: Thu, 30 Aug 2018 00:38:15 -0300 Subject: [PATCH 14/17] =?UTF-8?q?Criada=20a=20classe=20Homem=20(conceito?= =?UTF-8?q?=20de=20heran=C3=A7a)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- oo/pessoa.py | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/oo/pessoa.py b/oo/pessoa.py index 3b6da999f..b0d71c6d7 100644 --- a/oo/pessoa.py +++ b/oo/pessoa.py @@ -20,11 +20,15 @@ def metodo_estatico(): def nome_e_atributos_de_classe(cls): #cls alusão palavra class (Pessoa) return f'{cls} - olhos {cls.olhos}' +class Homem(Pessoa): + pass + + if __name__ =='__main__': - renzo = Pessoa(nome='Renzo') - luciano = Pessoa(renzo, nome='Luciano') + renzo = Homem(nome='Renzo') + luciano = Homem(renzo, nome='Luciano') print(Pessoa.cumprimentar(luciano)) print(id(luciano)) print(luciano.cumprimentar()) @@ -45,4 +49,9 @@ def nome_e_atributos_de_classe(cls): #cls alusão palavra class (Pessoa) print(id(Pessoa.olhos), id(luciano.olhos), id(renzo.olhos)) print(Pessoa.metodo_estatico(), luciano.metodo_estatico()) print(Pessoa.nome_e_atributos_de_classe(), luciano.nome_e_atributos_de_classe()) + pessoa = Pessoa('Anonimo') + print(isinstance(pessoa, Pessoa)) + print(isinstance(pessoa, Homem)) + print(isinstance(renzo, Pessoa)) + print(isinstance(renzo, Homem)) From 4dc8bd1f7e560366f6d9d99a12e3dcf04e5b5954 Mon Sep 17 00:00:00 2001 From: Edson Date: Thu, 30 Aug 2018 00:39:58 -0300 Subject: [PATCH 15/17] =?UTF-8?q?Criada=20a=20classe=20Homem=20(conceito?= =?UTF-8?q?=20de=20heran=C3=A7a)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- oo/pessoa.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/oo/pessoa.py b/oo/pessoa.py index b0d71c6d7..b49ae4617 100644 --- a/oo/pessoa.py +++ b/oo/pessoa.py @@ -20,7 +20,7 @@ def metodo_estatico(): def nome_e_atributos_de_classe(cls): #cls alusão palavra class (Pessoa) return f'{cls} - olhos {cls.olhos}' -class Homem(Pessoa): +class Homem(Pessoa): #classe Homem herda todos os atributos e métodos da classe pai Pessoa pass From a7de0bd4e9f58cf486b8de738e9d1e620bf18edf Mon Sep 17 00:00:00 2001 From: Edson Date: Thu, 30 Aug 2018 00:40:14 -0300 Subject: [PATCH 16/17] =?UTF-8?q?Criada=20a=20classe=20Homem=20(conceito?= =?UTF-8?q?=20de=20heran=C3=A7a)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- oo/pessoa.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/oo/pessoa.py b/oo/pessoa.py index b49ae4617..dfdabdf2e 100644 --- a/oo/pessoa.py +++ b/oo/pessoa.py @@ -20,7 +20,7 @@ def metodo_estatico(): def nome_e_atributos_de_classe(cls): #cls alusão palavra class (Pessoa) return f'{cls} - olhos {cls.olhos}' -class Homem(Pessoa): #classe Homem herda todos os atributos e métodos da classe pai Pessoa +class Homem(Pessoa): #classe Homem herda todos os atributos e métodos da classe pai Pessoa pass From 6a4bf17f2045df9b96ccd462dfded3c4bab2e8ac Mon Sep 17 00:00:00 2001 From: Edson Date: Thu, 30 Aug 2018 01:10:35 -0300 Subject: [PATCH 17/17] =?UTF-8?q?Cria=C3=A7=C3=A3o=20da=20classe=20motor?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- oo/carro.py | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/oo/carro.py b/oo/carro.py index 1e2810ba8..31006a2da 100644 --- a/oo/carro.py +++ b/oo/carro.py @@ -1,7 +1,5 @@ - - -''' +'''' você deve criar uma classe carro que vai possuir dois atributos compostos por outras classes: 1) Motor @@ -97,5 +95,14 @@ >>> 'Oeste ' ''' +class Motor: + def __init__(self): #criação do atributo velocidade através do método init + self.velocidade = 0 + + def acelerar(self): + self.velocidade += 1 + def frear(self): + self.velocidade -= 2 + self.velocidade = max(0, self.velocidadev)