No meu código eu fiz da forma como o Nico ensinou e funcionou normalmente, mas resolvi fazer diferente e criar um método genérico sem precisar utilizar o @staticmethod para saber qual erro ele retornaria. O problema é que quando realizei foi retornado normalmente o método que criei. Minha dúvida é: O @staticmethod é uma forma de convenção do código e não algo que influencia diretamente na sua funcionalidade?
Meu código completo com o método que eu criei:
class Conta:
def __init__(self, numero, titular, saldo, limite = 1000.0):
print("Objeto sendo criado...{}" .format(self))
self.__numero = numero
self.__titular = titular
self.__saldo = saldo
self.__limite = limite
#Métodos
def extrato(self):
print("O saldo de R$ {:.2f} do titular {}" .format(self.__saldo, self.__titular))
def deposita(self, valor):
self.__saldo += valor
def saca(self, valor):
if self.__pode_sacar(valor):
self.__saldo -= valor
print("Saque Efetuado")
else:
print(f"O valor {valor} passou do limite!")
def transfere(self, valor, destino):
self.saca(valor)
destino.deposita(valor)
# Métodos Privados
def __pode_sacar(self, valor):
valor_disponivel_a_sacar = valor <= (self.__saldo + self.__limite)
return valor_disponivel_a_sacar
#Propriedades
@property
def saldo(self):
return self.__saldo
@property
def titular(self):
return self.__titular
@property
def limite(self):
return self.__limite
@limite.setter
def limite(self, limite):
self.__limite = limite
#Métodos Estáticos
@staticmethod
def codigo_banco():
return "001"
@staticmethod
def codigos_bancos():
codigo_dos_bancos = {"BB":"001", "Caixa":"104", "Bradesco":"237"}
return codigo_dos_bancos
def soma():
soma = 2 + 1
return soma
Retorno do método
>>> from conta import Conta
>>> Conta.soma()
3