-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathapp-exemplo04.py
More file actions
82 lines (55 loc) · 2.51 KB
/
Copy pathapp-exemplo04.py
File metadata and controls
82 lines (55 loc) · 2.51 KB
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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
from datetime import date
from pessoa import Pessoa
from professor import Professor
# Dentro um script .py é possível declarar diversas funções e também diversas classes
# Para importar todas classes e funções do script cachorros.py basta fazer:
from cachorros import *
# Porém, a convenção Python PEP8 sugere fazer explicitamente, como está abaixo:
# from cachorros import Cachorro, CaoPolicial
if __name__ == '__main__':
# Instanciando um objeto da classe Pessoa e passando seu nome no construtor
pessoa = Pessoa("Juca")
print("Olá " + pessoa.nome)
# invocando método str da classe Pessoa
print(pessoa)
print("------------")
# Convenção Python PEP8
# nome_de_objetos por outro lado deve ser sempre em minúsculo e com palavras separadas por sublinha
outra_pessoa = Pessoa("Joana", date(2000, 10, 1))
print(outra_pessoa)
print("------------")
# Instanciando um objeto das classes Cachorro e CaoPolicial
domestico = Cachorro("Totó")
farejador = CaoPolicial("Brutus")
# todos atributos são públicos por definição em Python
print("O nome do cachorro é " + domestico.nome)
# acessando atributo da classe e não da instância
print("Cachorro faz parte da família dos {}".format(Cachorro.familia))
domestico.sentar()
farejador.farejar()
farejador.sentar()
domestico.adicionarTruques('rolar')
# Todos atributos são públicos em Python
farejador.truques.append('pular')
print("{} consegue fazer os seguintes truques: {}" .format(domestico.nome, domestico.truques))
print("{} consegue fazer os seguintes truques: {}".format(farejador.nome, farejador.truques))
# É possível criar um novo atributo na instância de uma classe, mesmo que não tenha
# sido declarado previamente na classe
pessoa.animal = domestico
# Porém, o objeto 'outraPessoa' não terá o atributo 'animal'.
print(pessoa.nome + " tem um cachorro chamado " + pessoa.animal.nome)
print("------------")
prof = Professor("Jota", {'123': 'Sinais', '456': 'Programação'})
print(prof)
print("------------")
prof.matricula = "76080-1" # todos atributos são públicos por definição
print(prof)
print("------------")
profa = Professor("Juteide", {'444': 'Algébra', '433': 'Web'}, "12345-6")
print(profa)
print(profa.listarDisciplinas())
print("------------")
# invocando um método do script cachorro.py que fora importado
metodoDoScript()