如何创建一个全局变量,其值是根据类上的对象计算的?

问题描述 投票:0回答:2

我只是通过优秀的旧银行任务开始使用Python。一个问题是在类中设置两个全局变量:total_balance和total_customer,前者是所有客户的余额之和(浮点值),后者是客户总数(整数)。我想不出在课堂上宣布这个的方法。

类定义目前是:

class BankAccount:
    def __init__(self, name, balance=0.00):
        self.name = str(name)
        self.balance = float(balance)
python class global-variables
2个回答
2
投票

通过全局变量,您应该引用类变量,其值是类范围的,而不是绑定到实例。在您的情况下,total_balancetotal_customer类变量可以像这样定义,以便每个新的BankAccount对象的实例化将相应地增加两个类变量:

class BankAccount:
    total_balance = 0.0
    total_customer = 0

    def __init__(self, name, balance=0.0):
        self.name = name
        self.balance = balance
        self.total_balance += balance
        self.total_customer += 1

0
投票

也许这样的事情就足够了?

class BankAccount:
    def __init__(self, name, balance=0.00):
        self.name = str(name)
        self.balance = float(balance)

def total_all_accounts(account_list):
    total = 0
    for account in account_list:
        total += account.balance
    print("Total held in bank: ${0:.2f}".format(total))
    print("Total number of customers: {}".format(len(account_list)))

myList = []
for i in range(25):
    account = BankAccount('John Doe', balance=5.00)
    myList.append(account)

total_all_accounts(myList)

这会创建一个对象列表(所有客户都是“John Doe”,并在创建帐户时存入5.00美元)。然后,我们有一个功能,可以从该列表中获取信息,并根据客户和存款总额对其进行总计。您可能希望更改列表的方式,以便客户拥有不同的名称和帐户余额,但我认为此示例显示了如何在列表中存储对象并在函数中访问其属性!

对我来说这个输出:

银行存款总额:125.00美元

客户总数:25

© www.soinside.com 2019 - 2024. All rights reserved.