如何关联两个不同的类?

时间:2018-12-12 03:35:01

标签: python class

我正在构建一个信用卡收费/计费应用程序,该应用程序应针对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

这是我最不确定的部分。如何将用户与其信用卡帐户相关联?

3 个答案:

答案 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解释面向对象的编程概念