-
Notifications
You must be signed in to change notification settings - Fork 113
/
Copy pathmain.py
40 lines (30 loc) · 1.1 KB
/
main.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
class Subtracao:
def __init__(self, expressao_esquerda, expressao_direita):
self.__expressao_esquerda = expressao_esquerda
self.__expressao_direita = expressao_direita
def avalia(self):
return (
self.__expressao_esquerda.avalia()
- self.__expressao_direita.avalia()
)
class Soma:
def __init__(self, expressao_esquerda, expressao_direita):
self.__expressao_esquerda = expressao_esquerda
self.__expressao_direita = expressao_direita
def avalia(self):
return (
self.__expressao_esquerda.avalia()
+ self.__expressao_direita.avalia()
)
class Numero:
def __init__(self, numero):
self.__numero = numero
def avalia(self):
return self.__numero
if __name__ == '__main__':
expressao_esquerda = Soma(Numero(10), Numero(20))
expressao_direita = Soma(Numero(5), Numero(2))
expressao_conta = Soma(expressao_esquerda, expressao_direita)
print(expressao_conta.avalia())
expressao_conta2 = Subtracao(Numero(100), Numero(70))
print(expressao_conta2.avalia())