gpt4 book ai didi

python - 如何在 Python 中打印我的对象名称

转载 作者:行者123 更新时间:2023-12-01 05:00:20 25 4
gpt4 key购买 nike

所以我对这段代码有疑问:

class Cliente:
def __init__(self,nome,telefone):
self.nome = nome;
self.telefone = telefone;

class Conta:
def __init__(self,clientes,numero,saldo=0):
self.saldo = saldo
self.numero = numero
self.clientes = clientes
def resumo(self):
print('Cliente: {0:s} CC Numero: {1:s} Saldo: {2:10.2f}'.format(self.clientes.nome, self.numero, self.saldo))
def saque(self,valor):
if self.saldo >= valor:
self.saldo -= valor
def deposito(self,valor):
self.saldo += valor

当我去测试我的类(class)时:

from tatu import Cliente
from tatu import Conta

joao = Cliente('Joao da Silva','666-6666')
maria = Cliente('Maria da Penha','234-5678')
conta1 = Conta(joao,'0138',1500)
conta1.deposito(800)
conta1.saque(1300)
conta2 = Conta([joao,maria],'0139',1000)
conta2.deposito(1000)
conta1.resumo()
conta2.resumo()

我的第二个帐户无法打印,并且出现此错误:

print('Cliente: {0:s} CC Numero: {1:s} Saldo: {2:10.2f}'.format(self.clientes.nome, self.numero, self.saldo))
AttributeError: 'list' object has no attribute 'nome'

最佳答案

你正在混合类型;有时您的 clientes一个 Cliente 实例,有时它是一个列表。

始终将其设为列表,然后循环该列表:

# account with just one client
conta1 = Conta([joao],'0138',1500)
# account with two clients
conta2 = Conta([joao,maria],'0139',1000)

现在它始终是一个列表,请使用循环:

def resumo(self):
for client in self.clientes:
print('Cliente: {0:s} CC Numero: {1:s} Saldo: {2:10.2f}'.format(client.nome, self.numero, self.saldo))

或者也许拆分客户名单并分别打印帐号和 saldo:

def resumo(self):
for client in self.clientes:
print('Cliente: {0:s}'.format(client.nome))
print('CC Numero: {1:s} Saldo: {2:10.2f}'.format(self.numero, self.saldo))

关于python - 如何在 Python 中打印我的对象名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26365661/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com