Production RiskSoftware ResiliencyCode Reliability
Production Risk
Global Variables can easily change module behavior
This code insight counts one violation each time global variable is declared, unless its name is uppercase.
Why you should care
Avoid global variables. Variables that are declared at the module level have the potential to change module behavior during the import, because assignments to module-level variables are done when the module is imported.
Avoid global variables in favor of class variables. Some exceptions are:
- Default options for scripts.
- Module-level constants. For example:Â
PI = 3.14159
. Constants should be named using all caps with underscores; see Naming below. - It is sometimes useful for globals to cache values needed or returned by functions.
- If needed, globals should be made internal to the module and accessed through public module level functions; see Naming below.
Business Impacts
CAST recommendations
References
https://google.github.io/styleguide/pyguide.html#Global_variables
About CAST and Highlight’s Code Insights
Over the last 25 years, CAST has leveraged unique knowledge on software quality measurement by analyzing thousands of applications and billions of lines of code. Based on this experience and community standards on programming best practices, Highlight implements hundreds of code insights across 15+ technologies to calculate health factors of a software.
See featuresHow it works