-
Notifications
You must be signed in to change notification settings - Fork 166
/
Copy pathaula128.py
33 lines (27 loc) · 825 Bytes
/
aula128.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
# Métodos de classe + factories (fábricas)
# São métodos onde "self" será "cls", ou seja,
# ao invés de receber a instância no primeiro
# parâmetro, receberemos a própria classe.
class Pessoa:
ano = 2023 # atributo de classe
def __init__(self, nome, idade):
self.nome = nome
self.idade = idade
@classmethod
def metodo_de_classe(cls):
print('Hey')
@classmethod
def criar_com_50_anos(cls, nome):
return cls(nome, 50)
@classmethod
def criar_sem_nome(cls, idade):
return cls('Anônima', idade)
p1 = Pessoa('João', 34)
p2 = Pessoa.criar_com_50_anos('Helena')
p3 = Pessoa('Anônima', 23)
p4 = Pessoa.criar_sem_nome(25)
print(p2.nome, p2.idade)
print(p3.nome, p3.idade)
print(p4.nome, p4.idade)
# print(Pessoa.ano)
# Pessoa.metodo_de_classe()