From 3de3613724561f66b54e7a5e852bf489d5743480 Mon Sep 17 00:00:00 2001 From: Darren Ranalli Date: Thu, 23 Jun 2005 00:14:26 +0000 Subject: [PATCH] POD: don't override base classes' explicit getters and setters --- direct/src/showbase/PythonUtil.py | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/direct/src/showbase/PythonUtil.py b/direct/src/showbase/PythonUtil.py index 40724bc41a..022e776b89 100644 --- a/direct/src/showbase/PythonUtil.py +++ b/direct/src/showbase/PythonUtil.py @@ -1226,13 +1226,17 @@ class POD: # create setters & getters for this class if cls.__dict__.has_key('DataSet'): for name in cls.DataSet: - def defaultSetter(self, value, name=name): - setattr(self, name, value) - cls.__dict__[getSetterName(name)] = defaultSetter - def defaultGetter(self, name=name, - default=cls.DataSet[name]): - return getattr(self, name, default) - cls.__dict__[getSetterName(name, 'get')] = defaultGetter + setterName = getSetterName(name) + if not hasattr(cls, setterName): + def defaultSetter(self, value, name=name): + setattr(self, name, value) + cls.__dict__[setterName] = defaultSetter + getterName = getSetterName(name, 'get') + if not hasattr(cls, getterName): + def defaultGetter(self, name=name, + default=cls.DataSet[name]): + return getattr(self, name, default) + cls.__dict__[getterName] = defaultGetter # this dict will hold all of the aggregated default data values for # this particular class, including values from its base classes cls._DataSet = {}