Доступ к атрибуту с использованием переменной в Python

Как мне ссылаться на this_prize.left или this_prize.right с использованием переменной?

 from collections import namedtuple import random Prize = namedtuple("Prize", ["left", "right"]) this_prize = Prize("FirstPrize", "SecondPrize") if random.random() > .5: choice = "left" else: choice = "right" # retrieve the value of "left" or "right" depending on the choice print("You won", this_prize.choice) AttributeError: 'Prize' object has no attribute 'choice' 

2 Solutions collect form web for “Доступ к атрибуту с использованием переменной в Python”

Выражение this_prize.choice сообщает интерпретатору, что вы хотите получить доступ к атрибуту this_prize с именем «choice». Но этот атрибут не существует в this_prize.

Вы действительно хотите вернуть атрибут this_prize, идентифицированный по выбору. Поэтому вам просто нужно изменить свою последнюю строку …

 from collections import namedtuple import random Prize = namedtuple("Prize", ["left", "right" ]) this_prize = Prize("FirstPrize", "SecondPrize") if random.random() > .5: choice = "left" else: choice = "right" #retrieve the value of "left" or "right" depending on the choice print "You won", getattr(this_prize,choice) 
  • Как получить фильтр для работы с лямбдой с несколькими аргументами?
  • python eval vs ast.literal_eval против декодирования JSON
  • Удалите все разрывы строк из длинной строки текста
  • Python - удаление старых файлов
  • Идеальная пересылка - в Python
  • Что такое по умолчанию __hash__ в python?
  • В чем разница между этими двумя решениями - лямбда или петля - Python
  • Что делает запятая в назначении python
  • Python - лучший язык программирования в мире.