Extra: tipagem, linters e settings.json do VS Code

This commit is contained in:
Luiz Otávio
2022-12-01 10:10:25 -03:00
parent ed6137331b
commit 62d3de84a6
3 changed files with 17 additions and 12 deletions

10
.vscode/settings.json vendored
View File

@@ -22,7 +22,7 @@
"editor.formatOnSave": true, "editor.formatOnSave": true,
"editor.codeActionsOnSave": { "editor.codeActionsOnSave": {
"source.fixAll": true, "source.fixAll": true,
"source.fixAll.unusedImports": false, "source.fixAll.unusedImports": true,
"source.organizeImports": true "source.organizeImports": true
} }
}, },
@@ -35,12 +35,12 @@
"python.linting.flake8Args": [ "python.linting.flake8Args": [
// "--ignore=E111", // "--ignore=E111",
], ],
"python.linting.flake8Enabled": false, "python.linting.flake8Enabled": true,
"python.linting.mypyEnabled": false, "python.linting.mypyEnabled": true,
"python.testing.unittestEnabled": false, "python.testing.unittestEnabled": false,
"python.testing.pytestEnabled": false, "python.testing.pytestEnabled": true,
"python.analysis.diagnosticSeverityOverrides": {}, "python.analysis.diagnosticSeverityOverrides": {},
// "python.defaultInterpreterPath": "./venv/bin/python", // "python.defaultInterpreterPath": "./venv/bin/python",
"python.analysis.typeCheckingMode": "off", "python.analysis.typeCheckingMode": "basic",
"cSpell.enabled": false "cSpell.enabled": false
} }

View File

@@ -2,19 +2,20 @@ import abc
class Conta(abc.ABC): class Conta(abc.ABC):
def __init__(self, agencia, conta, saldo=0): def __init__(self, agencia: int, conta: int, saldo: float = 0) -> None:
self.agencia = agencia self.agencia = agencia
self.conta = conta self.conta = conta
self.saldo = saldo self.saldo = saldo
@abc.abstractmethod @abc.abstractmethod
def sacar(self, valor): ... def sacar(self, valor: float) -> float: ...
def depositar(self, valor): def depositar(self, valor: float) -> float:
self.saldo += valor self.saldo += valor
self.detalhes(f'(DEPÓSITO {valor})') self.detalhes(f'(DEPÓSITO {valor})')
return self.saldo
def detalhes(self, msg=''): def detalhes(self, msg: str = '') -> None:
print(f'O seu saldo é {self.saldo:.2f} {msg}') print(f'O seu saldo é {self.saldo:.2f} {msg}')
print('--') print('--')
@@ -30,14 +31,18 @@ class ContaPoupanca(Conta):
print('Não foi possível sacar o valor desejado') print('Não foi possível sacar o valor desejado')
self.detalhes(f'(SAQUE NEGADO {valor})') self.detalhes(f'(SAQUE NEGADO {valor})')
return self.saldo
class ContaCorrente(Conta): class ContaCorrente(Conta):
def __init__(self, agencia, conta, saldo=0, limite=0): def __init__(
self, agencia: int, conta: int,
saldo: float = 0, limite: float = 0
):
super().__init__(agencia, conta, saldo) super().__init__(agencia, conta, saldo)
self.limite = limite self.limite = limite
def sacar(self, valor): def sacar(self, valor: float) -> float:
valor_pos_saque = self.saldo - valor valor_pos_saque = self.saldo - valor
limite_maximo = -self.limite limite_maximo = -self.limite
@@ -49,6 +54,7 @@ class ContaCorrente(Conta):
print('Não foi possível sacar o valor desejado') print('Não foi possível sacar o valor desejado')
print(f'Seu limite é {-self.limite:.2f}') print(f'Seu limite é {-self.limite:.2f}')
self.detalhes(f'(SAQUE NEGADO {valor})') self.detalhes(f'(SAQUE NEGADO {valor})')
return self.saldo
if __name__ == '__main__': if __name__ == '__main__':

View File

@@ -35,4 +35,3 @@ Banco será responsável autenticar o cliente e as contas da seguinte maneira:
Só será possível sacar se passar na autenticação do banco (descrita acima) Só será possível sacar se passar na autenticação do banco (descrita acima)
Banco autentica por um método. Banco autentica por um método.
""" """
import contas