AttributeError: объект 'tuple' не имеет атрибута - программирование
Подтвердить что ты не робот

AttributeError: объект 'tuple' не имеет атрибута

Я начинающий в python. Я не могу понять, в чем проблема?

def list_benefits():

        s1 = "More organized code"
        s2 = "More readable code"
        s3 = "Easier code reuse"
        s4 = "Allowing programmers to share and connect code together"
        return s1,s2,s3,s4

def build_sentence():

        obj=list_benefits()
        print obj.s1 + " is a benefit of functions!"
        print obj.s2 + " is a benefit of functions!"
        print obj.s3 + " is a benefit of functions!"

print build_sentence()

Ошибка, которую я получаю:

Traceback (most recent call last):
   Line 15, in <module>
   print build_sentence()
   Line 11, in build_sentence
   print obj.s1 + " is a benefit of functions!"
AttributeError: 'tuple' object has no attribute 's1'
4b9b3361

Ответ 1

Вы возвращаете четыре переменные s1, s2, s3, s4 и выводите их с использованием одной переменной obj. Это то, что называется tuple, obj связано с 4 значениями, значениями s1,s2,s3,s4. Таким образом, используйте индекс, как вы используете в списке, чтобы получить нужное значение в порядке.

obj=list_benefits()
print obj[0] + " is a benefit of functions!"
print obj[1] + " is a benefit of functions!"
print obj[2] + " is a benefit of functions!"
print obj[3] + " is a benefit of functions!"

Ответ 2

Вы возвращаете tuple. Индексируйте его.

obj=list_benefits()
print obj[0] + " is a benefit of functions!"
print obj[1] + " is a benefit of functions!"
print obj[2] + " is a benefit of functions!"

Ответ 3

Имена переменных только локально значимы.

Как только вы нажмете

return s1,s2,s3,s4

в конце метода Python строит кортеж со значениями s1, s2, s3 и s4 в качестве четырех его членов в индексе 0, 1, 2 и 3 - НЕ словарь переменных имен для значений, НЕ объект с именами переменных и их значениями и т.д.

Если вы хотите, чтобы имена переменных были значимыми после нажатия return в методе, вы должны создать объект или словарь.