Welcome to the Treehouse Community
Want to collaborate on code errors? Have bugs you need feedback on? Looking for an extra set of eyes on your latest project? Get support with fellow developers, designers, and programmers of all backgrounds and skill levels here with the Treehouse Community! While you're at it, check out some resources Treehouse students have shared here.
Looking to learn something new?
Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and join thousands of Treehouse students and alumni in the community today.
Start your free trialMatthew Cushing
12,048 PointsConstruction Zone Challenge "NameError: name myList is not defined"
I have no idea why this isn't working. It works completely fine in VSCode. When I do:
code = Letter.from_string("dot-dot-dash")
print(code.pattern)
print(code)
I get an output of:
[".", ".", "_"]
"dot-dot-dash"
So everything seems to be working correctly yet I get the error: NameError: name myList is not defined. Huh? Didn't I define it with an empty list?
class Letter:
def __init__(self, pattern=None):
self.pattern = pattern
def __iter__(self):
yield from self.pattern
def __str__(self):
output = []
for blip in self:
if blip == '.':
output.append('dot')
else:
output.append('dash')
return '-'.join(output)
@classmethod
def from_string(cls, string):
myList = []
temp = string.split("-")
for word in temp:
if word == "dot":
mylist.append(".")
elif word == "dash":
myList.append("_")
return cls(myList)
class S(Letter):
def __init__(self):
pattern = ['.', '.', '.']
super().__init__(pattern)
2 Answers
Dave StSomeWhere
19,870 PointsIs your exact error method "NameError: name myList is not defined."
Double check your from_string()
method again - the error is in the code you posted.
Joshua Hoy
4,887 PointsThe appending of the '.' to myList seems to have an issue. I've noticed you haven't actually used camel casing for it and that's why the error it coming up. You've used mylist instead of myList.