【发布时间】:2010-01-20 22:08:03
【问题描述】:
在接受具有网关交易的付款的订单的系统中,对象应该是这样的:
class Order(object):
... Inside init ...
self.total_in_dollars = <Dollar Amount>
self.is_paid = <Boolean Value>
class Payment(object):
... Inside init ...
self.order = order_instance
self.amount = order.total_in_dollars
class GatewayTransaction(object):
... Inside init ...
self.payment = payment_instance
self.amount = <Dollar Amount>
这似乎是这样做的方法(显然这不是具有整数美元金额等的真实代码,但你明白了)。我这样做是因为订单可以在没有付款的情况下存在,并且付款可以在实际的 PayPal 交易发生之前存在。您认为这是否不足?我的想法是不是倒退了?
OR,是否应该更像这样:
class GatewayTransaction(object):
payment = payment_instance
amount = <Dollar Amount>
class Payment(object):
amount = <Dollar Amount>
gateway_transaction = gateway_transaction_instance
class Order(object):
amount_in_dollars = <Dollar Amount>
payment = payment_instance
【问题讨论】:
-
您似乎有几个与 Python 相关的问题,并且遇到了一些困难 :-) 坚持下去,您的问题很好,他们会得到解答。
-
@e-satis 我真的不是菜鸟,虽然看起来我是。我花了数年时间研究认知科学,这种询问显而易见的想法是提高技能的好方法。例如,在这个问题中,Alex 用他的 weakref 示例回答了这个问题,而我从来没有使用过 weakref。我现在学到了一些关于记忆效率的好东西。