Когда метод вызывается, он возвращает AttributeError - PullRequest
0 голосов
/ 08 мая 2020

В этом коде есть класс Person, у которого есть имя атрибута, которое устанавливается при построении объекта. Это должно делать: 1) при создании экземпляра класса атрибут устанавливается правильно и 2) при вызове метода приветствия () приветствие указывает назначенное имя.

class Person:
    def __init__(self, name):
        self.name = name
    def greeting(self):
        # Should return "hi, my name is " followed by the name of the Person.
        return "hi, my name is {}".format(self.name) 

# Create a new instance with a name of your choice
some_person = "xyz"  
# Call the greeting method
print(some_person.greeting())

It вернул ошибку:

AttributeError: 'str' object has no attribute 'greeting'

Ответы [ 2 ]

0 голосов
/ 08 мая 2020

Ваша переменная some_person является экземпляром объекта str. У которого нет атрибута greeting.

Ваш класс Person должен быть создан с переменной name, прежде чем вы сможете использовать greeting:

some_person = Person(“xyz”)
print(some_person.greeting())
# "hi, my name is xyz”
0 голосов
/ 08 мая 2020

Вы просто устанавливаете переменную в строку, а не в класс Person. Вместо этого получится Person с именем xyz.

some_person = Person("xyz")
...