вызов метода в python для увеличения возраста животного - PullRequest
0 голосов
/ 29 декабря 2018

Мне поручено создать собаку по кличке 'Molly' в возрасте 1.Я называю метод grow, чтобы увеличить возраст на 2, и печатаю его.

Я знаю, как заставить Молли бежать, но я не понимаю, как увеличить ее возраст, она продолжает показывать None.

Любая помощь будет работать, но было бы лучше, если бы ее можно было объяснить.Заранее спасибо за помощь.

class Dog():
    """ a class representing a dog """

    def __init__(self, name, age):
        """ Initialize name and age attributes. """
        self.name = name
        self.age = age

    def run(self):
        """ Simulate a dog running. """
        print(self.name.title() + " is running ...")

    def grow(self, year):
        """ Update age by adding year. """
        self.age += year

molly = Dog("Molly", 1)

print(molly.name + " is " + str(molly.grow(2)))
molly.run()

Результат этого

Molly is None
Molly is running ...

1 Ответ

0 голосов
/ 29 декабря 2018

Метод grow не возвращает атрибут age, он просто устанавливает атрибут age.

grow возвращает None (неявно), и это то, что вы видите в своемprint call.

Используйте

print(molly.age) # 1
molly.grow(2) # adjust age
print(molly.age) # 3

, чтобы понять, что я имею в виду.

Вы можете переписать исходную попытку как

molly.grow(2)
print(molly.name + " is " + str(molly.age)) # Molly is 3

илинемного больше элегантности с форматированием строки как

molly.grow(2)
print('{0.name} is {0.age}'.format(molly)) # Molly is 3
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...