My experience with global variables in scripting is softimage treats them like static declared variables from C/C++. The variable is initialized once, then cached for all future invocations of the script during the user session. They are not de-referenced when the script terminates/completes.
This mainly applies to scripts run from the script editor directly. Global variables inside of self installing plugins should work as expected. Matt From: [email protected] [mailto:[email protected]] On Behalf Of Xavier Lapointe Sent: Friday, May 11, 2012 6:12 PM To: [email protected] Subject: [Python] global variable issue on linux Hey guys, This one really surprised me. I tend to avoid global variable in Softimage plugins as much as I can, but sometimes it might be convenient. So basically, I wanted to use a global variable ( simple Python Dictionary ) to keep some stuff in reference while interacting with a PPG. I remember clearly that it was working well under Windows, so I assume this is a python 2.5 Linux issue (if this is an issue - please tell me if this is normal under Soft with python 2.5). Here's basically what I was trying to do: [imports ....] # Global Scope LAST_SELECTION = { 'project': {}, 'category': '', 'entities': [], } def CustomCommand_Execute(): global LAST_SELECTION [Do some modifications to LAST_SELECTION] Following this pattern: * Prompt the PPG * Interact with the UI * The custom command is fired - do some modifications to LAST_SELECTION * hit another PPG UI * Hell the LAST_SELECTION global is back to the inital value! I've been tracing the LAST_SELECTION variable with id(), and it's changing every time I interact with the UI; showing clearly that there is something nasty going on under the hood (?) Any idea to get this working? Alan mentioned the Application.SetGlobal/Application.GetGlobal functions ... but still, this should be working natively, isn't? Thanks! -- Xavier

