Результат не тот, который я ожидал. Когда guya (объект) получает свой лимон (также объект) от парня, у обоих из них были увеличены лимоны, а затем уменьшены на 1, из того, что кажется. Но если вы раскомментируете единственную прокомментированную строку из этой программы, я попытался присвоить счет guyc lemon 1000, но это только установило личность lemon.quantity на 1000. Что происходит?Объект внутри данных объекта помогает. (С фруктами)
Целью использования getlemon в классе slasher было уменьшение количества целевого лимона на 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()
Почему метод 'set_quantity'? Использование геттеров/сеттеров не является питоническим; если вам когда-нибудь понадобится такое поведение, вы всегда можете использовать свойство. – ThiefMaster
Я ничего не знаю о собственности, но я ее прочитаю. –