-
Notifications
You must be signed in to change notification settings - Fork 0
/
POO - 11 - Metodos especiais.py
143 lines (119 loc) · 3.82 KB
/
POO - 11 - Metodos especiais.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
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
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
<<<<<<< Updated upstream
#__str__
class Conta(object):
def __init__(self, idConta, saldo):
self.idConta = idConta
self.saldo = saldo
def __str__(self): #Esse metodo especial transforma a classe em uma string
return f'ID: {self.idConta}\nSaldo: R${self.saldo}'
viacredi = Conta(123, 5000)
print(viacredi)
#__add__
class Conta2(object):
def __init__(self, idConta, saldo):
self.idConta = idConta
self.saldo = saldo
def __add__(self, valor):
self.saldo += valor
nubank = Conta2(456, 1000)
nubank.__add__(50)
print(nubank.saldo)
nubank + 50 # Isso só é possivel por causa do metodo especial __add__ que foi criado na classe
print(nubank.saldo)
#__doc__
class Conta3(object):
'''
Objeto do Tipo Conta
Estas string é exibida pelo metodo especial __doc__
'''
def __init__(self, idConta, saldo):
'''
Este comentario é exibido pelo metodo especial __doc__
:param idConta:
:param saldo:
'''
self.idConta = idConta
self.saldo = saldo
itau = Conta3(987, 500)
print(itau.__doc__)
print(itau.__init__.__doc__)
#issubclass(subclasse, superclasse) - Verifica se a Subclasse passada é filha da SuperClasse
class Pai(object):
pass
class Filha(Pai):
pass
class Neta(Filha):
pass
print(issubclass(Filha, Pai)) # Classe Filha é Subclasse da Pai
print(issubclass(Pai, Neta)) # Classe Pai não é subclasse da Neta
print(Filha.__bases__) # Outro metodo especial para verificar Super Classe
#callabe(objeto) - Retorna se o objeto pode ser invocado
print(callable(Pai))
class Conta4(object):
def __init__(self, idConta, saldo):
self.idConta = idConta
self.saldo = saldo
def __call__(self, x): # Se criar o metodo __call__ na classe a mesma pode se torna callabe
return x
bradesco = Conta4(394, 900)
print(bradesco('Esta string so foi retornada devido ao metodo __call__'))
=======
#__str__
class Conta(object):
def __init__(self, idConta, saldo):
self.idConta = idConta
self.saldo = saldo
def __str__(self): #Esse metodo especial transforma a classe em uma string
return f'ID: {self.idConta}\nSaldo: R${self.saldo}'
viacredi = Conta(123, 5000)
print(viacredi)
#__add__
class Conta2(object):
def __init__(self, idConta, saldo):
self.idConta = idConta
self.saldo = saldo
def __add__(self, valor):
self.saldo += valor
nubank = Conta2(456, 1000)
nubank.__add__(50)
print(nubank.saldo)
nubank + 50 # Isso só é possivel por causa do metodo especial __add__ que foi criado na classe
print(nubank.saldo)
#__doc__
class Conta3(object):
'''
Objeto do Tipo Conta
Estas string é exibida pelo metodo especial __doc__
'''
def __init__(self, idConta, saldo):
'''
Este comentario é exibido pelo metodo especial __doc__
:param idConta:
:param saldo:
'''
self.idConta = idConta
self.saldo = saldo
itau = Conta3(987, 500)
print(itau.__doc__)
print(itau.__init__.__doc__)
#issubclass(subclasse, superclasse) - Verifica se a Subclasse passada é filha da SuperClasse
class Pai(object):
pass
class Filha(Pai):
pass
class Neta(Filha):
pass
print(issubclass(Filha, Pai)) # Classe Filha é Subclasse da Pai
print(issubclass(Pai, Neta)) # Classe Pai não é subclasse da Neta
print(Filha.__bases__) # Outro metodo especial para verificar Super Classe
#callabe(objeto) - Retorna se o objeto pode ser invocado
print(callable(Pai))
class Conta4(object):
def __init__(self, idConta, saldo):
self.idConta = idConta
self.saldo = saldo
def __call__(self, x): # Se criar o metodo __call__ na classe a mesma pode se torna callabe
return x
bradesco = Conta4(394, 900)
print(bradesco('Esta string so foi retornada devido ao metodo __call__'))
>>>>>>> Stashed changes