Python turtle UnboundLocalError
I keep getting a UnboundLocalError when I try assigning turtle to turtle.Turtle() in a function. Why is it? Is the name used in turtle.py?
import turtle
def make_turtle():
turtle = turtle.Turtle()
return turtle
eu = make_turtle()
Traceback (most recent call last):
File "/home/usr/PycharmProjects/LearningToThinkLikeAComputerScientist/c4 - Functions/test.py", line 6, in <module>
eu = make_turtle()
File "/home/luis/PycharmProjects/LearningToThinkLikeAComputerScientist/c4 - Functions/test.py", line 3, in make_turtle
turtle = turtle.Turtle()
UnboundLocalError: local variable 'turtle' referenced before assignment
python debugging runtime-error
add a comment |
I keep getting a UnboundLocalError when I try assigning turtle to turtle.Turtle() in a function. Why is it? Is the name used in turtle.py?
import turtle
def make_turtle():
turtle = turtle.Turtle()
return turtle
eu = make_turtle()
Traceback (most recent call last):
File "/home/usr/PycharmProjects/LearningToThinkLikeAComputerScientist/c4 - Functions/test.py", line 6, in <module>
eu = make_turtle()
File "/home/luis/PycharmProjects/LearningToThinkLikeAComputerScientist/c4 - Functions/test.py", line 3, in make_turtle
turtle = turtle.Turtle()
UnboundLocalError: local variable 'turtle' referenced before assignment
python debugging runtime-error
1
line 3, in make_turtle turtle = turtle.Turtle() This line is not in the code you posted. Please post your real code.
– John Gordon
Nov 23 at 3:24
Is this really the completemake_turtle
function?
– Michael Butscher
Nov 23 at 3:24
Tried this with Python 3.6.5 under win10 and it works without error.
– figbeam
Nov 23 at 3:25
The error message refers to a line not in your posted code.
– figbeam
Nov 23 at 3:27
add a comment |
I keep getting a UnboundLocalError when I try assigning turtle to turtle.Turtle() in a function. Why is it? Is the name used in turtle.py?
import turtle
def make_turtle():
turtle = turtle.Turtle()
return turtle
eu = make_turtle()
Traceback (most recent call last):
File "/home/usr/PycharmProjects/LearningToThinkLikeAComputerScientist/c4 - Functions/test.py", line 6, in <module>
eu = make_turtle()
File "/home/luis/PycharmProjects/LearningToThinkLikeAComputerScientist/c4 - Functions/test.py", line 3, in make_turtle
turtle = turtle.Turtle()
UnboundLocalError: local variable 'turtle' referenced before assignment
python debugging runtime-error
I keep getting a UnboundLocalError when I try assigning turtle to turtle.Turtle() in a function. Why is it? Is the name used in turtle.py?
import turtle
def make_turtle():
turtle = turtle.Turtle()
return turtle
eu = make_turtle()
Traceback (most recent call last):
File "/home/usr/PycharmProjects/LearningToThinkLikeAComputerScientist/c4 - Functions/test.py", line 6, in <module>
eu = make_turtle()
File "/home/luis/PycharmProjects/LearningToThinkLikeAComputerScientist/c4 - Functions/test.py", line 3, in make_turtle
turtle = turtle.Turtle()
UnboundLocalError: local variable 'turtle' referenced before assignment
python debugging runtime-error
python debugging runtime-error
edited Nov 23 at 4:45
asked Nov 23 at 3:22
Luis Felipe
52
52
1
line 3, in make_turtle turtle = turtle.Turtle() This line is not in the code you posted. Please post your real code.
– John Gordon
Nov 23 at 3:24
Is this really the completemake_turtle
function?
– Michael Butscher
Nov 23 at 3:24
Tried this with Python 3.6.5 under win10 and it works without error.
– figbeam
Nov 23 at 3:25
The error message refers to a line not in your posted code.
– figbeam
Nov 23 at 3:27
add a comment |
1
line 3, in make_turtle turtle = turtle.Turtle() This line is not in the code you posted. Please post your real code.
– John Gordon
Nov 23 at 3:24
Is this really the completemake_turtle
function?
– Michael Butscher
Nov 23 at 3:24
Tried this with Python 3.6.5 under win10 and it works without error.
– figbeam
Nov 23 at 3:25
The error message refers to a line not in your posted code.
– figbeam
Nov 23 at 3:27
1
1
line 3, in make_turtle turtle = turtle.Turtle() This line is not in the code you posted. Please post your real code.
– John Gordon
Nov 23 at 3:24
line 3, in make_turtle turtle = turtle.Turtle() This line is not in the code you posted. Please post your real code.
– John Gordon
Nov 23 at 3:24
Is this really the complete
make_turtle
function?– Michael Butscher
Nov 23 at 3:24
Is this really the complete
make_turtle
function?– Michael Butscher
Nov 23 at 3:24
Tried this with Python 3.6.5 under win10 and it works without error.
– figbeam
Nov 23 at 3:25
Tried this with Python 3.6.5 under win10 and it works without error.
– figbeam
Nov 23 at 3:25
The error message refers to a line not in your posted code.
– figbeam
Nov 23 at 3:27
The error message refers to a line not in your posted code.
– figbeam
Nov 23 at 3:27
add a comment |
1 Answer
1
active
oldest
votes
In the import statement you assign the name turtle.
Then you assign to it in the function. If I have understood this correctly, the python parser first esttablishes thet the name turtle
is assigned which makes it local. Then it processes the line turtle = turtle.Turtle()
fron right to left. On discovering that you try to retrieve the value pointed to by turtle
it is not assigned, you get an error.
Instead try another name:
import turtle
def make_turtle():
cat = turtle.Turtle()
return cat
eu = make_turtle()
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53440287%2fpython-turtle-unboundlocalerror%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
In the import statement you assign the name turtle.
Then you assign to it in the function. If I have understood this correctly, the python parser first esttablishes thet the name turtle
is assigned which makes it local. Then it processes the line turtle = turtle.Turtle()
fron right to left. On discovering that you try to retrieve the value pointed to by turtle
it is not assigned, you get an error.
Instead try another name:
import turtle
def make_turtle():
cat = turtle.Turtle()
return cat
eu = make_turtle()
add a comment |
In the import statement you assign the name turtle.
Then you assign to it in the function. If I have understood this correctly, the python parser first esttablishes thet the name turtle
is assigned which makes it local. Then it processes the line turtle = turtle.Turtle()
fron right to left. On discovering that you try to retrieve the value pointed to by turtle
it is not assigned, you get an error.
Instead try another name:
import turtle
def make_turtle():
cat = turtle.Turtle()
return cat
eu = make_turtle()
add a comment |
In the import statement you assign the name turtle.
Then you assign to it in the function. If I have understood this correctly, the python parser first esttablishes thet the name turtle
is assigned which makes it local. Then it processes the line turtle = turtle.Turtle()
fron right to left. On discovering that you try to retrieve the value pointed to by turtle
it is not assigned, you get an error.
Instead try another name:
import turtle
def make_turtle():
cat = turtle.Turtle()
return cat
eu = make_turtle()
In the import statement you assign the name turtle.
Then you assign to it in the function. If I have understood this correctly, the python parser first esttablishes thet the name turtle
is assigned which makes it local. Then it processes the line turtle = turtle.Turtle()
fron right to left. On discovering that you try to retrieve the value pointed to by turtle
it is not assigned, you get an error.
Instead try another name:
import turtle
def make_turtle():
cat = turtle.Turtle()
return cat
eu = make_turtle()
answered Nov 23 at 3:36
figbeam
2,680137
2,680137
add a comment |
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Some of your past answers have not been well-received, and you're in danger of being blocked from answering.
Please pay close attention to the following guidance:
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53440287%2fpython-turtle-unboundlocalerror%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
1
line 3, in make_turtle turtle = turtle.Turtle() This line is not in the code you posted. Please post your real code.
– John Gordon
Nov 23 at 3:24
Is this really the complete
make_turtle
function?– Michael Butscher
Nov 23 at 3:24
Tried this with Python 3.6.5 under win10 and it works without error.
– figbeam
Nov 23 at 3:25
The error message refers to a line not in your posted code.
– figbeam
Nov 23 at 3:27