我正在尝试创建一个程序:
这是我的代码:
destroy
当我运行它时,这是我得到的一个例子:
from random import randint
class calculate(object):
def __init__(self, account_balance):
self.account_balance = account_balance
def applycharge(self):
account_balance = self.account_balance
if account_balance < 10:
print "Minimum balance charges of $10 apply."
account_balance = account_balance - 10
print account_balance
return account_balance
else:
print "No minimum balance charges apply."
def printbalance(self):
account_balance = self.account_balance
print "The net account balance is: %d" % account_balance
initial_balance = randint(-100, 100)
print "The account balance before charges is: %d" % initial_balance
getcharge = calculate(initial_balance)
getcharge.applycharge()
getcharge.account_balance()
所以,在最后一行之前一切正常。 (当随机生成的余额不低于10时,一切也都可以,这会导致罚款被评估。)
注意 - 我只是将print语句显示在倒数第二行(The account balance before charges is: -74
Minimum balance charges of $10 apply.
-84
The net account balance is: -74
)中,以检查一切是否正常。
当我想显示“净帐户余额”时出现问题。在评估罚款10之前,我显然显示了原始余额。
我认为在罚款之后如何返回余额并将其传递给“printbalance”方法存在问题。或者没有通过它,就像这样。或者,这可能与调用“printbalance”时使用原始的全局变量有关,而不是我正在尝试做的事情,即更改该值,返回它然后显示它。
我写这一小段代码的全部意义在于运用我的大脑来传递变量,并试图充实我不理解的东西。任务完成。
我要停在那里,因为我的解释是要像我现在的大脑那样变得像意大利面一样乱糟糟的,但我希望这能提供足够的信息来说明我想要完成的事情。
我确实看过其他类似措辞的问题/答案,但我似乎无法从中得到答案。
最后,我确定这里有各种各样的错误 - 我只是编程(或尝试)大约三个星期。
答案 0 :(得分:0)
您只能返回新余额,但随后会忽略返回的值,也不会在您的实例上设置新值。
因此,您返回的account_balance
值将丢失,被忽略。
您可能希望更新属性,以便getcharge.printbalance()
将打印更新后的值:
def applycharge(self):
account_balance = self.account_balance
if account_balance < 10:
print "Minimum balance charges of $10 apply."
self.account_balance = account_balance - 10
else:
print "No minimum balance charges apply."
我删除了返回线; getcharge
班级的calculate
个实体负责跟踪帐户余额值。