结果不是我所期望的。当guya(一个对象)从guyb那里得到他的柠檬(也是一个对象)时,他们俩的柠檬都增加了,然后减少了1,从表面上看。但是,如果您取消注释该程序中唯一注释的行,我尝试将 Guyc lemon 的计数分配为 1000,但这只会将每个人的 lemon.quantity 设置为 1000。这是怎么回事?
我在类slasher中的getlemon的目的是减少目标的柠檬数量1,并增加1的柠檬数量,但失败了。我做错什么了?当我尝试将 guyc.lemon.quantity 分配为 1 时,发生了什么?
class item():
def __init__(self, x = 0): self.quantity = x
def set_quantity(self, newquantity): self.quantity = newquantity
class slasher():
health = 10
lemon = item(10)
def getlemon(self, target):#target is the placeholder
target.lemon.quantity -= 1
self.lemon.quantity += 1
target.health -= 1
guya = slasher()
guyb = slasher()
guyc = slasher()
guya.getlemon(guyb)
#guyc.lemon.quantity = 1000
def printit():
print("guya's lemon count:", guya.lemon.quantity)
print("guyb's lemon count:", guyb.lemon.quantity)
print("guyc's lemon count:", guyc.lemon.quantity)
print("guyb's health:", guyb.health)
printit()