Skip to content

Commit 9ff4f25

Browse files
m41b3cm41b3c
authored andcommitted
até sobrescrita de atributos de dados.
1 parent 0c9bcce commit 9ff4f25

7 files changed

Lines changed: 80 additions & 56 deletions

File tree

OO/carro.py

Lines changed: 56 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,59 @@
1+
class Motor:
2+
def __init__(self):
3+
self.velocidade = 0
4+
5+
def acelerar(self):
6+
self.velocidade += 1
7+
8+
def frear(self):
9+
self.velocidade -= 1
10+
self.velocidade = max(0, self.velocidade)
11+
12+
13+
# PEP-8
14+
NORTE = 'Norte'
15+
SUL = 'Sul'
16+
LESTE = 'Leste'
17+
OESTE = 'Oeste'
18+
19+
20+
class Direcao:
21+
rotacao_a_direita_dct = {NORTE: LESTE, LESTE: SUL, SUL: OESTE, OESTE: NORTE}
22+
rotacao_a_esquerda_dct = {NORTE: OESTE, LESTE: NORTE, SUL: LESTE, OESTE: SUL}
23+
24+
def __init__(self):
25+
self.valor = NORTE
26+
27+
def girar_a_direita(self):
28+
self.valor = self.rotacao_a_direita_dct[self.valor]
29+
30+
def girar_a_esquerda(self):
31+
self.valor = self.rotacao_a_esquerda_dct[self.valor]
32+
33+
34+
class Carro:
35+
def __init__(self, direcao, motor):
36+
self.direcao = direcao
37+
self.motor = motor
38+
39+
def calcular_velociade(self):
40+
return self.motor.velocidade
41+
42+
def acelerar(self):
43+
self.motor.acelerar()
44+
45+
def frear(self):
46+
self.motor.frear()
47+
48+
def calcular_direcao(self):
49+
return self.direcao.valor
50+
51+
def girar_a_direita(self):
52+
self.direcao.girar_a_direita()
53+
54+
def girar_a_esquerda(self):
55+
self.direcao.girar_a_esquerda()
56+
157

258
"""
359
Você deve criar uma classe carro que vai possuir
@@ -97,58 +153,5 @@
97153
'Oeste'
98154
99155
"""
100-
class Motor:
101-
def __init__(self):
102-
self.velocidade = None
103-
104-
def acelerar(self):
105-
self.velocidade +=1
106-
107-
108-
def frear(self):
109-
self.velocidade -=1
110-
self.velocidade=max(0, self.velocidade)
111-
112-
#PEP-8
113-
NORTE='Norte'
114-
SUL='Sul'
115-
LESTE='Leste'
116-
OESTE='Oeste'
117-
118-
class Direcao:
119-
rotacao_a_direita_dct = {NORTE: LESTE, LESTE: SUL, SUL: OESTE, OESTE: NORTE}
120-
rotacao_a_esquerda_dct = {NORTE: OESTE, LESTE: NORTE, SUL: LESTE, OESTE: SUL}
121-
122-
def __init__(self):
123-
self.valor = NORTE
124-
125-
def girar_a_direita(self):
126-
self.valor = self.rotacao_a_direita_dct[self.valor]
127-
128-
def girar_a_esquerda(self):
129-
self.valor = self.rotacao_a_esquerda_dct[self.valor]
130-
131-
class Carro:
132-
def __init__(self, direcao, motor):
133-
self.direcao = direcao
134-
self.motor = motor
135-
136-
def calcular_velociade(self):
137-
return self.motor.velocidade
138-
139-
def acelerar(self):
140-
self.motor.acelerar()
141-
142-
def frear(self):
143-
self.motor.frear()
144-
145-
def calcular_direcao(self):
146-
return self.direcao.valor
147-
148-
def girar_a_direita(self):
149-
self.direcao.girar_a_direita()
150-
151-
def girar_a_esquerda(self):
152-
self.direcao.girar_a_esquerda()
153156

154157

OO/pessoa.py

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,12 +22,15 @@ def nome_e_atributos_de_classe(cls):
2222
class Homem(Pessoa):
2323
pass
2424

25+
class Mutante(Pessoa):
26+
olhos = 3
27+
2528

2629
if __name__ == '__main__':
2730
sofia = Pessoa(nome='Sofia')
2831
valentina = Pessoa(nome="Valentina")
2932
jacir = Homem(sofia, nome='Jacir')
30-
jacir = Pessoa(valentina, nome='Jacir')
33+
jacir = Mutante(nome='Jacir')
3134
print(Pessoa.cumprimentar(jacir))
3235
print(id(jacir))
3336
print(jacir.cumprimentar())
@@ -41,6 +44,7 @@ class Homem(Pessoa):
4144
jacir.sobrenome = 'Pieniak'
4245
print(jacir.sobrenome)
4346
print(jacir.__dict__)
47+
4448
# deleta o atributo dinâmico em tempo de execução
4549
del jacir.sobrenome
4650
print(jacir.__dict__)
@@ -49,7 +53,6 @@ class Homem(Pessoa):
4953

5054
print(Pessoa.olhos)
5155
print(jacir.olhos)
52-
jacir.olhos = 3
5356
print(jacir.__dict__)
5457

5558
# teste metodos de classe
@@ -61,4 +64,7 @@ class Homem(Pessoa):
6164
# teste Herança
6265

6366
print(isinstance(sofia, Pessoa))
64-
print(isinstance())
67+
print(isinstance(jacir, Homem))
68+
69+
#teste de sobrescrita de atributo de dados
70+
print(jacir.olhos)

OO/test_carro.py

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
from unittest import TestCase
2+
3+
from OO.carro import Motor
4+
5+
6+
class CarroTestCase(TestCase):
7+
def test_velocidade_inicial(self):
8+
motor = Motor()
9+
self.assertEqual(0, motor.velocidade)
10+
11+
def test_acelerar(self):
12+
motor = Motor()
13+
motor.acelerar()
14+
self.assertEqual(1, motor.velocidade)

atores.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -133,6 +133,7 @@ def lancar(self, angulo, tempo_de_lancamento):
133133

134134

135135
class PassaroAmarelo(Passaro):
136+
136137
pass
137138

138139

0 commit comments

Comments
 (0)