如何关联两个不同的类?

2024-05-16 16:20:49 发布

您现在位置:Python中文网/ 问答频道 /正文

我建立了一个信用卡收费/计费应用程序,应该收费/信用对抄送帐户。我想得到一些关于我如何组织事情的反馈。你知道吗

到目前为止,我有一个作为父类的类Card,这些类是Card固有的:

Card:
- Credit Card
    constructor:
    - number
    - balance
    methods:
    - verify_cc
    - credit
    - charge

- Debit Card
    (mostly same as above)

在我看来,信用卡和借记卡应该从卡继承,以防我需要扩展东西,但到目前为止,我没有什么可以继承的,所以我不确定。每张卡的数字和余额是唯一的,所以我不应该继承它们。到目前为止,借记卡是没有必要的,但我只是试图结构我的代码,以便在必要的情况下,我将不必重写一切。你知道吗

接下来是:

User:
    constructor:
    - name
    - address
    methods:
    -add_user

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


Tags: 应用程序number帐户card信用卡事情methodsbalance
3条回答

Numbers and balance are unique to each card, so IMO they shouldn't be inherited.

我认为你把继承和复制混淆了。从类继承时,继承属性和方法。假设你有这样的东西

def CreditCard(Card):
    def __init__(number, balance):

在实例化CreditCard类时,必须声明数字和余额。你知道吗

cc = CreditCard(xyz, abc)

这些xyz, abc将成为变量cc的数量和余额。你知道吗

在用User链接卡片时,您可以在类中定义一个属性来存储User拥有的所有卡片。你知道吗

像这样的

u = User()
u.cards

我当然向Google推荐OOP(面向对象编程),但我可以试着向您简要介绍这个概念。例如:

1)您可以在User中创建一个名为“Cards”的功能,该功能存储用户拥有的所有汽车(可以是dict或list)

用户: 施工单位: -姓名 -地址 -卡片

2)一个选项是,您可以将卡片添加到该功能中,使其成为用户的参数。例如:

Me = User( name, address, cards)

2)另一个选项是,您可以为用户创建方法来操作该特性。例如:

方法: -AddCard:向用户添加一个card实例

name.AddCard(instanceOfCard)
  • GetCard:从存储在用户上的实例中获取一个card实例

    你知道吗name.GetCard卡(instanceOfCard)

媒体上有很多关于OOP的文章,下面是一个有趣的例子: [如何向6岁的孩子解释面向对象编程概念1

您可以使泛型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

同样的方法也可以用卡片来追踪交易。你知道吗

相关问题 更多 >