Python 如何在类中更新值
我正在尝试编写一个独立于主类的类,我希望它能够跟踪我从主类购买的物品的平衡和数量。但是,我在每次进行交易时都很难更新Num和balance,当我打印balance和Num时,它总是给我0和2000Python 如何在类中更新值,python,python-3.x,Python,Python 3.x,我正在尝试编写一个独立于主类的类,我希望它能够跟踪我从主类购买的物品的平衡和数量。但是,我在每次进行交易时都很难更新Num和balance,当我打印balance和Num时,它总是给我0和2000 class Wallet: def __init__(self, Num = 0, balance = 2000): self.Num = Num self.balance = balance def addNum(self, c, d):
class Wallet:
def __init__(self, Num = 0, balance = 2000):
self.Num = Num
self.balance = balance
def addNum(self, c, d):
if d > self.balance:
return print(f'You have insufficient balance to buy {c}')
else:
self.balance -= d
self.Num += c
return Wallet().print()
def print(self):
print(f'You have {self.Num} of {self.balance}')
Wallet().addNum(3, 30)
将
Wallet().print()
替换为self.print()
,否则每次尝试打印时都会创建一个全新的钱包。非常感谢。似乎每次我在while循环中运行它时,平衡和num都会刷新。有没有办法保存每次跑步?@tec3719你到底在做什么?您是否正在while循环中执行Wallet().addNum(3,30)
?因为同样,每次都会创建一个新实例。这同样适用于Wallet().addNum(3,30)
:每次这样做时,它都会创建一个新的Wallet。试试wallet=wallet();wallet.addNum(3,30);钱包.地址(1,17);wallet.print()
。首先需要创建wallet
的实例。然后调用实例方法addNum(3,30)
。也就是说,首先是my_wallet=wallet()
,然后是my_wallet.addNum(3,30)
。此外,它应该是return self.print()
,而不是return wallet().print()。