What Are Dynamic Variables?
Dynamic variables refer to variables whose names or values are generated at runtime, not hard-coded. Python allows this using dictionaries, setattr(), or globals()/locals().
Warning First
Using dynamic variable names via globals() or locals() is not recommended for most use cases because:
- It's hard to debug
- Makes code harder to read and maintain
- Introduces security risks in some cases
Instead, prefer using dictionaries or objects.
Recommended: Use a Dictionary
variables = {}
for i in range(3):
    variables[f"var{i}"] = i * 10
print(variables["var0"])  # Output: 0
print(variables["var1"])  # Output: 10
Using setattr() on Objects or Classes
class DynamicVars:
    pass
obj = DynamicVars()
for i in range(3):
    setattr(obj, f"var{i}", i * 100)
print(obj.var0)  # Output: 0
print(obj.var1)  # Output: 100
 Not Recommended: Using globals() or locals()
for i in range(3):
    globals()[f"var{i}"] = i
print(var0)  # Output: 0
print(var1)  # Output: 1
This works, but is discouraged because it pollutes the global namespace.
Checking If a Dynamic Variable Exists
With hasattr():
if hasattr(obj, "var1"):
    print("var1 exists")
With in for dictionary:
if "var1" in variables:
    print("var1 exists")
Summary Table
| Method | Safe? | Use Case | 
|---|---|---|
| dict | ✅✅ | Best for dynamic key-value storage | 
| setattr() | ✅ | When working with objects or configs | 
| globals()/locals() | ⚠️❌ | Avoid unless absolutely necessary | 
Real Use Cases
- Dynamic form input handling
- Generating config objects dynamically
- Template rendering engines
- Storing user sessions or settings
Conclusion
While Python allows creating variables dynamically, the safest and cleanest way is to use dictionaries or object attributes via setattr(). Avoid globals() unless you're doing metaprogramming or debugging tools.

0 Comments:
Post a Comment