Accessing an attribute using a variable in Python
python
Solution
The expression `this_prize.choice` is telling the interpreter that you want to access an attribute of this_prize with the name "choice". But this attribute does not exist in this_prize.
What you actually want is to return the attribute of this_prize identified by the value of choice. So you just need to change your last line using the getattr() method...
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)
Problem
How do I reference `this_prize.left` or `this_prize.right` using a variable? ``` 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' ```