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

Reply via email to