由于某种原因,我无法概念化如何使用Checkbook.class对象而不是“ ledger [list]”。什么是实现本准则目标的最佳实践方法?(是的,我也有其他“新手”问题,但是我很乐意得到一些建议。)
import sys
import time
transNum=0
ledger = []
debitInput=['Check Number: ', 'Transaction Date: ',
'Payee: ', 'Amount: ', 'Memo (or Enter to skip): ']
creditInput=['Check Number: ', 'Transaction Date: ',
'Source: ', 'Amount: ', 'Memo (or Enter to skip): ']
# a Payee is a persistent record/lookup of current, past and new payees
class Payee:
pass
# a Source is a persistent record/lookup of current, past and new sources
class Source:
pass
# a Checkbook is a collection of Transaction objects upon which queries may be performed
class Checkbook:
def __init__(self, newTrans):
pass
# a Transaction is a collection of Debit and Credit objects
class Transaction:
def __init__(self, chkNum, transDate, thirdParty, amount, memo=''):
self.chkNum = chkNum
self.transDate = transDate
self.memo=memo
self.thirdParty=thirdParty
self.amount=amount
self.transNum = transNum
class Debit(Transaction):
def __init__(self, *args):
Transaction.__init__(self, *args)
self.payee=self.thirdParty
del self.thirdParty
self.amount=int(self.amount)*-1
class Credit(Transaction):
def __init__(self, *args):
Transaction.__init__(self, *args)
self.source=self.thirdParty
del self.thirdParty
self.amount=int(self.amount)
while True:
transact = []
transNum += 1
choice=input('Posting debit [d], credit [c] or [x] to exit: ')
if choice == 'x': break
elif choice == 'd':
for field in debitInput:
field = input(field)
transact.append(field)
trans = Debit(transact[0], transact[1], transact[2], transact[3], transact[4])
ledger.append(trans)
冉冉说
相关分类