Другие ответы объяснили, что происходит.
Это одна из (нескольких) проблем, которые мотивируют использование объектов. Например, можно было бы это сделать:
class Animal:
def __init__(self, aniType, name):
self.aniType = aniType
self.name = name
self.isAlive = True
def kill(self):
self.isAlive = False
def getName(self):
return self.name
def getType(self):
return self.aniType
def isLiving(self):
return self.isAlive
polly = Animal("parrot", "polly")
print(polly.getName()+' the '+polly.getType()+' is alive?')
print(polly.isLiving())
polly.kill()
print(polly.getName()+' the '+polly.getType()+' is alive?')
print(polly.isLiving())
Сначала для простой задачи это может выглядеть как много кода, но объекты часто являются способами для таких вещей, потому что они помогают поддерживать все организовано.
Вот результат этой программы:
polly the parrot is alive?
True
polly the parrot is alive?
False