summaryrefslogtreecommitdiff
path: root/cmd2/cmd2.py
diff options
context:
space:
mode:
Diffstat (limited to 'cmd2/cmd2.py')
-rw-r--r--cmd2/cmd2.py4
1 files changed, 3 insertions, 1 deletions
diff --git a/cmd2/cmd2.py b/cmd2/cmd2.py
index c7a0fa6d..3b1fbb6f 100644
--- a/cmd2/cmd2.py
+++ b/cmd2/cmd2.py
@@ -3120,7 +3120,9 @@ class Cmd(cmd.Cmd):
self._in_py = True
py_code_to_run = ''
- # Locals for the Python environment we are creating
+ # Use self.py_locals as the locals() dictionary in the Python environment we are creating, but make
+ # a copy to prevent pyscripts from editing it. (e.g. locals().clear()). Only make a shallow copy since
+ # it's OK for py_locals to contain objects which are editable in a pyscript.
localvars = dict(self.py_locals)
localvars[self.py_bridge_name] = py_bridge
localvars['quit'] = py_quit