Как создать глобальные переменные, значения которых рассчитываются на основе объектов в классе? - PullRequest
0 голосов
/ 12 марта 2019

Я только начинаю с Python через старое доброе банковское задание.Один из вопросов заключается в том, чтобы задать две глобальные переменные в классе: total_balance и total_customer, где первая представляет собой сумму сальдо всех клиентов (значения с плавающей запятой), а вторая - общее количество клиентов (целое число).Я не могу придумать способ объявить это в классе.

Определение класса в настоящее время:

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

Ответы [ 2 ]

2 голосов
/ 12 марта 2019

Под глобальными переменными вы должны ссылаться на переменные класса, значения которых являются общеклассовыми и не привязаны к экземпляру. В вашем случае переменные класса total_balance и total_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 голосов
/ 12 марта 2019

Может быть, что-то вроде этого будет достаточно?

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)

При этом создается список объектов (все клиенты «Джон Доу» и вносят 5,00 долл. США при создании своей учетной записи). Затем у нас есть функция, которая отправляет и извлекает информацию из этого списка и суммирует ее с точки зрения клиентов, а также общей суммы внесенных средств. Возможно, вы захотите изменить способ составления списка, чтобы клиенты имели разные имена и остатки на счетах, но я думаю, что этот пример показывает, как хранить объекты в списках и получать доступ к их атрибутам в функциях!

Для меня это выводит:

Всего в банке: $ 125,00

Общее количество клиентов: 25

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...