Global Variables can easily change module behavior

Production RiskSoftware ResiliencyCode Reliability

Global Variables can easily change module behavior

This code insight counts one violation each time global variable is declared, unless its name is uppercase.
5362

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

Production Risk

CAST recommendations

References

https://google.github.io/styleguide/pyguide.html#Global_variables

5362

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