Paul Jungwirth on 3 Sep 2018 12:31:02 -0700 |
[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]
Re: [PLUG] Off Topic: Python3 Global Variable in Separate Function File Question |
On 09/03/2018 08:05 AM, Casey Bralla wrote:
Sorry for the off-topic, but I'm running Python3 on Linux :) I'm confused by global variables in functions that are kept in separate files. I understand that in Python3 variables are "inherited" into functions, and that to make them global, they have to be declared as global within the function. However, if I put all my functions in a separate file and import them, the variables that should be global are NOT global.
This StackOverflow answer should help you out: https://stackoverflow.com/questions/15959534/python-visibility-of-global-variables-in-imported-modules/15959638 The key line is: > Globals in Python are global to a module, not across all modules. You can make your script work with two changes:1. In the imported module, make sure your variable is defined at the top-level as soon as the file is imported, whether you ever call the function or not:
Parameter3 = 0 def testglobal(Parameter1, Parameter2): ...2. In the test script, do `import globalmodules`, not (or in addition to) `from globalmodules import *`. Then refer to `globalmodules.Parameter3`.
-- Paul ~{:-) pj@illuminatedcomputing.com ___________________________________________________________________________ Philadelphia Linux Users Group -- http://www.phillylinux.org Announcements - http://lists.phillylinux.org/mailman/listinfo/plug-announce General Discussion -- http://lists.phillylinux.org/mailman/listinfo/plug