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 trial

Python

Matthew Cushing
Matthew Cushing
12,048 Points

Construction 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?

morse.py
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
Dave StSomeWhere
19,870 Points

Is 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.

The 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.