python - 如何将信息从一个类的实例继承到另一个实例中?
问题描述
我正在尝试创建一个基本银行程序,该程序具有一个包含客户资料信息的类,该类将由其他几个类继承,用于客户将能够访问的帐户类型(例如支票帐户、储蓄帐户)。我希望产品类从客户资料类继承所有信息,然后为该特定服务添加余额。
这是我尝试过的代码:
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)
如何将配置文件信息传递给支票账户类的实例?
谢谢!
解决方案
您正在尝试在真正需要“具有”关系的组合的情况下使用“是”关系的继承。换句话说,一个支票账户“有一个”与之相关的客户档案。
例子:
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.
推荐阅读
- java - Undertow:如何控制选择主机取决于请求正文内容?
- dbeaver - DBeaver 5.2.0 中的自动换行在哪里?
- csv - 使用 csv 作为值 python
- c - 声明循环外的迭代器和注册的迭代器:它们有多大用处?
- hibernate - 仅使用 getter 映射到 Hibernate/JPA 列(没有实际的类属性)
- java - 为什么平面映射和收集树集列表会返回一个对象?
- node.js - 使用 Elastic Beanstalk 权限问题部署 NodeJS
- tsql - STIRNG_SPLIT 函数在 SSRS 数据集中不起作用
- javascript - 在 MVC 中引用 JS 配置文件中的相对路径
- python - 如何测量魔杖中字符串的边界?