Commit 63e583a3 authored by Guido van Rossum's avatar Guido van Rossum

Add initial values to variables to avoid crash in __del__

parent 2a3cb866
......@@ -76,6 +76,7 @@ def _exit(code='0'):
_varnum = 0
class Variable:
_default = ""
def __init__(self, master=None):
global _default_root
global _varnum
......@@ -85,6 +86,7 @@ class Variable:
self._tk = _default_root.tk
self._name = 'PY_VAR' + `_varnum`
_varnum = _varnum + 1
self.set(self._default)
def __del__(self):
self._tk.globalunsetvar(self._name)
def __str__(self):
......@@ -93,24 +95,28 @@ class Variable:
return self._tk.globalsetvar(self._name, value)
class StringVar(Variable):
_default = ""
def __init__(self, master=None):
Variable.__init__(self, master)
def get(self):
return self._tk.globalgetvar(self._name)
class IntVar(Variable):
_default = "0"
def __init__(self, master=None):
Variable.__init__(self, master)
def get(self):
return self._tk.getint(self._tk.globalgetvar(self._name))
class DoubleVar(Variable):
_default = "0.0"
def __init__(self, master=None):
Variable.__init__(self, master)
def get(self):
return self._tk.getdouble(self._tk.globalgetvar(self._name))
class BooleanVar(Variable):
_default = "false"
def __init__(self, master=None):
Variable.__init__(self, master)
def get(self):
......
......@@ -76,6 +76,7 @@ def _exit(code='0'):
_varnum = 0
class Variable:
_default = ""
def __init__(self, master=None):
global _default_root
global _varnum
......@@ -85,6 +86,7 @@ class Variable:
self._tk = _default_root.tk
self._name = 'PY_VAR' + `_varnum`
_varnum = _varnum + 1
self.set(self._default)
def __del__(self):
self._tk.globalunsetvar(self._name)
def __str__(self):
......@@ -93,24 +95,28 @@ class Variable:
return self._tk.globalsetvar(self._name, value)
class StringVar(Variable):
_default = ""
def __init__(self, master=None):
Variable.__init__(self, master)
def get(self):
return self._tk.globalgetvar(self._name)
class IntVar(Variable):
_default = "0"
def __init__(self, master=None):
Variable.__init__(self, master)
def get(self):
return self._tk.getint(self._tk.globalgetvar(self._name))
class DoubleVar(Variable):
_default = "0.0"
def __init__(self, master=None):
Variable.__init__(self, master)
def get(self):
return self._tk.getdouble(self._tk.globalgetvar(self._name))
class BooleanVar(Variable):
_default = "false"
def __init__(self, master=None):
Variable.__init__(self, master)
def get(self):
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment