python - 你如何使用python维护一个简单的贷记借记单
问题描述
我在python(oops)中使用以下代码来维护贷记借记声明。Classdef_Cash.py 文件具有程序的主要结构,Cash_001.py 文件具有贷记和借记代码。一切正常,除了贷记和借方价值没有定期更新。有人可以帮我吗?请参考这两个文件并运行 Cash_001.py 文件。"""
Classdef_Cash_001.py
是第一个文件,Cash_001.py
是第二个文件
class Cash:
def __init__(self, DATE, VOUCHER, SPECIFICATION, INITIAL_AMOUNT, CREDIT,DEBIT, REMARKS, BALANCE):
self.DATE = DATE
self.VOUCHER = VOUCHER
self.SPECIFICATION = SPECIFICATION
self.CREDIT = CREDIT
self.DEBIT = DEBIT
self.REMARKS = REMARKS
self.BALANCE = INITIAL_AMOUNT
def Spending(self,DATE,VOUCHER,SPECIFICATION,DEBIT,REMARKS):
self.DATE = DATE
self.VOUCHER = VOUCHER
self.SPECIFICATION = SPECIFICATION
self.REMARKS = REMARKS
self.BALANCE -= DEBIT
def CashInflow(self,DATE,VOUCHER,SPECIFICATION,CREDIT,REMARKS):
self.DATE = DATE
self.VOUCHER = VOUCHER
self.SPECIFICATION = SPECIFICATION
self.REMARKS = REMARKS
self.BALANCE += CREDIT
def dump(self):
s = 'DATE: %s, VOUCHER: %s, SPECIFICATION: %s , CREDIT: %s ,DEBIT: %s ,REMARKS :%s ,BALANCE :%s ' % \
(self.DATE,self.VOUCHER, self.SPECIFICATION, self.CREDIT, self.DEBIT, self.REMARKS,self.BALANCE)
print s
Cash_001.py
是第二个文件
from Classdef_Cash_001 import Cash
p1=Cash('01/10/2018','000','CARRY FORWARD',2000,0,0,'REMAINDER','0')
p1.dump()
p1.Spending('01/10/2018','001','OIL',200,'JOHN')
p1.dump()
p1.CashInflow('02/10/2018','002','SALES',10000,'REF179800')
p1.dump()
p1.Spending('03/10/2018','003','GAS',200,'GEORGE')
p1.dump()
p1.CashInflow('03/10/2018','004','SALES',50000,'REF179801')
p1.dump()
解决方案
请参考下面的代码。这正是我在寻找一个统一的贷方借方余额表。每当有资金流入时,借方就被强制为零,每当有支出时,贷方就被强制为零。贷方和借方仅在从上个月结转的输出的第一行中保持为零。这类似于每当有输入时禁用输出的概念,并且每当有输出时禁用输入。请运行 Cash_001.py 文件。
#Classdef_Cash_001.py
class Cash:
def __init__(self, DATE, VOUCHER, SPECIFICATION, INITIAL_AMOUNT, CREDIT,DEBIT,
REMARKS, BALANCE):
self.DATE = DATE
self.VOUCHER = VOUCHER
self.SPECIFICATION = SPECIFICATION
self.CREDIT = CREDIT
self.DEBIT = DEBIT
self.REMARKS = REMARKS
self.BALANCE = INITIAL_AMOUNT
def Spending(self,DATE,VOUCHER,SPECIFICATION,DEBIT,CREDIT,REMARKS):
self.DATE = DATE
self.VOUCHER = VOUCHER
self.SPECIFICATION = SPECIFICATION
self.REMARKS = REMARKS
self.DEBIT = DEBIT
self.CREDIT = 0
self.BALANCE -= DEBIT
def CashInflow(self,DATE,VOUCHER,SPECIFICATION,CREDIT,DEBIT,REMARKS):
self.DATE = DATE
self.VOUCHER = VOUCHER
self.SPECIFICATION = SPECIFICATION
self.REMARKS = REMARKS
self.CREDIT = CREDIT
self.DEBIT = 0
self.BALANCE += CREDIT
def dump(self):
s = 'DATE: %s, VOUCHER: %s, SPECIFICATION: %s , CREDIT: %s ,DEBIT: %s
,REMARKS :%s ,BALANCE :%s ' % \
(self.DATE,self.VOUCHER, self.SPECIFICATION, self.CREDIT, self.DEBIT,
self.REMARKS, self.BALANCE)
print s
#Cash_001.py
from Classdef_Cash_001 import Cash
p1=Cash('01/10/2018','000','CARRY FORWARD',2000,0,0,'REMAINDER',0)
p1.dump()
p1.Spending('01/10/2018','001','OIL',200,0,'JOHN')
p1.dump()
p1.CashInflow('02/10/2018','002','SALES',1000,0,'REF179800')
p1.dump()
p1.Spending('03/10/2018','003','GAS',200,0,'GEORGE')
p1.dump()
p1.CashInflow('03/10/2018','004','SALES',5000,0,'REF179801')
p1.dump()
推荐阅读
- python - 纬度/经度是线性的吗?
- javascript - 将枚举列表传递给外部 JS 文件的最佳实践?ASP.NET 核心 MVC
- python - Why does a ManyToMany relationship created in setUpTestData cause a duplicate key error?
- python - 将元素 HTML 呈现为纯文本
- javascript - 如何计算javascript中带有前导零的数字的位数?
- emacs - 如何将内联引号从 emacs org 模式导出为乳胶 csquotes 语法?
- javascript - 我如何设置百分比机会
- php - 解析 json_decode 输出 null
- javascript - 如何从函数中获取价值
- python - 在 Python 中重置(重新初始化)整数列表(为 0)的最佳方法是什么