On 8/15/2015 2:47 PM, Mark Lawrence wrote:
On 15/08/2015 22:11, Peter Otten wrote:
Clayton Kirkwood wrote:
10 top_directory = "/users/Clayton/Pictures"
def override_defaults():
56 return( top_directory, filetypes, target_directory )
80 top_directory, filetypes, target_directory = override_defaults()
File "C:/Users/Clayton/python/find picture duplicates/find picture
duplicates", line 80, in <module>
top_directory, filetypes, target_directory = override_defaults()
File "C:/Users/Clayton/python/find picture duplicates/find picture
duplicates", line 56, in override_defaults
return( top_directory, filetypes, target_directory )
UnboundLocalError: local variable 'top_directory' referenced before
assignment
<snip>
Your explanation doesn't make any sense to me. I'd have thought that
having assigned top_directory at line 10, but then trying to reassign it
at line 80, means that the function now knows nothing about it, hence
the error.
Assigning to a variable inside a function makes that variable local,
which must have happened as per the error message:
UnboundLocalError: local variable 'top_directory'...
As Peter noted, somewhere within override_defaults there's an assignment
to it. Changing to
def override_defaults(top_directory=top_directory):
should initialize it in case the assignment path isn't processed.
Emile
_______________________________________________
Tutor maillist - Tutor@python.org
To unsubscribe or change subscription options:
https://mail.python.org/mailman/listinfo/tutor