首页 > 解决方案 > 如何将信息从一个类的实例继承到另一个实例中?

问题描述

我正在尝试创建一个基本银行程序,该程序具有一个包含客户资料信息的类,该类将由其他几个类继承,用于客户将能够访问的帐户类型(例如支票帐户、储蓄帐户)。我希望产品类从客户资料类继承所有信息,然后为该特定服务添加余额。

这是我尝试过的代码:

class Account:
    def __init__(self, name, cust_id, pin):
        self.name = name 
        self.cust_id = cust_id
        self.pin = pin

aidan_profile = Account('Aidan', 123456, 1234)

class CheckingAccount(Account):
    def __init__(self, name, cust_id, pin, balance):
        Account.__init__(self, cust_id, pin)
        self.balance = balance

aidan_checking_account = CheckingAccount(aidan_profile, balance = 1000)

如何将配置文件信息传递给支票账户类的实例?

谢谢!

标签: pythonpython-3.x

解决方案


您正在尝试在真正需要“具有”关系的组合的情况下使用“是”关系的继承。换句话说,一个支票账户“有一个”与之相关的客户档案。

例子:

class CustomerProfile:
    def __init__(self, name, cust_id, pin):
        self.name = name 
        self.cust_id = cust_id
        self.pin = pin

aidan_profile = CustomerProfile('Aidan', 123456, 1234)

class CheckingAccount:
    def __init__(self, profile, balance):
        self.profile = profile
        self.balance = balance

aidan_checking = CheckingAccount(aidan_profile, balance = 1000)

print(f"Customer {aidan_checking.profile.name} has a balance of {aidan_checking.balance} in checking.")

输出:

Customer Aidan has a balance of 1000 in checking.

推荐阅读