我正在构建一个信用卡收费/计费应用程序,该应用程序应针对cc帐户进行收费/贷记。我想获得一些有关我如何组织事物的反馈。
到目前为止,作为父类Card
,我有一个Card
固有的类:
Card:
- Credit Card
constructor:
- number
- balance
methods:
- verify_cc
- credit
- charge
- Debit Card
(mostly same as above)
在我看来,信用卡和借记卡应该从卡继承,以防万一我需要使事情具有可扩展性,但是到目前为止我还没有继承的东西,所以我不确定。号码和余额对于每张卡都是唯一的,因此IMO不应继承它们。到目前为止,不需要借记卡,但是我只是在尝试构建我的代码,以便在有必要的情况下,我不必重写所有内容。
下一个是:
User:
constructor:
- name
- address
methods:
-add_user
这是我最不确定的部分。如何将用户与其信用卡帐户相关联?
答案 0 :(得分:3)
您可以使泛型Card
类继承自该类。
Card:
constructor:
- number
- owner
- co_owner
methods:
- credit
- charge
- Debit Card (Card)
methods:
- available
- Credit Card (Card)
constructor:
- balance
methods:
- available
- verify_cc
您可以使用列表将卡与用户相关联。
User:
constructor:
- name
- address
- cards (list)
methods:
- add_card
- remove_card
使用卡来跟踪交易也可以这样做。
答案 1 :(得分:0)
数字和余额对于每张卡来说都是唯一的,因此IMO不应继承它们。
我认为您将继承与复制混淆了。从类继承时,将继承属性和方法。假设你有这样的东西
def CreditCard(Card):
def __init__(number, balance):
实例化CreditCard
类时,必须声明数字和余额。
cc = CreditCard(xyz, abc)
这些xyz, abc
将成为变量cc的数量和余额。
在将卡片与User
链接时,您只需在类中定义一个属性即可存储User
拥有的所有卡片。
类似
u = User()
u.cards
答案 2 :(得分:0)
我绝对向您推荐有关OOP(面向对象程序设计)的Google,但是我可以尝试向您简要介绍这一概念。例如:
1)您可以在用户中创建一个名为“卡牌”的功能,该功能存储该用户拥有的所有汽车(可以是字典或列表)
用户: 构造函数: - 名称 - 地址 -卡
2)一种选择是,您可以通过将卡设为用户参数来向该功能添加卡。例如:
Me = User( name, address, cards)
2)其他选项是您可以为用户创建方法来操纵该功能。例如:
方法: -AddCard:将卡实例添加到用户
name.AddCard(instanceOfCard)
GetCard:从用户存储的卡片中获取卡片的实例
name.GetCard(instanceOfCard)
关于OOP的媒体上有大量文章,下面是一个有趣的例子: [如何向6岁的孩子1解释面向对象的编程概念