python - How to access var within function but outside subfunction -


i have following function, includes function inside it:

def function():     previously_parsed_tv_urls = set()      def _get_all_related(tv_urls):          api_urls = [self._build_api_url_from_store_url(url)                     url in tv_urls not in previously_parsed_tv_urls]         previously_parsed_tv_urls = tv_urls.union(api_urls)       function() 

however, don't have access previously_parsed_tv_urls. how access within _get_all_related function?

here error get:

unboundlocalerror: local variable 'previously_parsed_tv_urls' referenced before assignment 

if want reference earlier defined name, in "higher" scope, python fine it. grants sorts of power, when you're messing around in interpreter.

however, python pretty generous @ trying stop doing things can bite or cause nasty, difficult debug problems. unboundlocalerror comes in.

as redefine name in particular scope, python marks local scope (only), , not higher provide value. keeps accidentally mucking higher scopes without explicitly requesting it.

as andrea corbellini mentioned, python 3 adds nonlocal keyword permit make such explicit request. pep 3104 pretty exhaustively describes change in scoping rules permits, comparing both python without nonlocal other common languages of kind.


Comments

Popular posts from this blog

resizing Telegram inline keyboard -

command line - How can a Python program background itself? -

php - "cURL error 28: Resolving timed out" on Wordpress on Azure App Service on Linux -