From 55e6b5d31606159f999ba135fd054b478ae47757 Mon Sep 17 00:00:00 2001 From: yumoqing Date: Thu, 11 Apr 2024 18:00:59 +0800 Subject: [PATCH] bugfix --- appPublic/argsConvert.py | 16 +++++++--------- appPublic/dictObject.py | 4 ++++ 2 files changed, 11 insertions(+), 9 deletions(-) diff --git a/appPublic/argsConvert.py b/appPublic/argsConvert.py index e008d5b..50e2ad1 100755 --- a/appPublic/argsConvert.py +++ b/appPublic/argsConvert.py @@ -18,19 +18,17 @@ class ArgsConvert(object): def convert(self,obj,namespace,default=''): """ obj can be a string,[],or dictionary """ - if type(obj) == type(''): + if isinstance(obj, str): return self.convertString(obj,namespace,default) - if type(obj) == type([]): + if isinstance(obj, list): ret = [] for o in obj: ret.append(self.convert(o,namespace,default)) return ret - if type(obj) == type({}): - ret = {} - for k in obj.keys(): - ret.update({k:self.convert(obj.get(k),namespace,default)}) + if isinstance(obj, dict): + ret = DictObject() + ret.update({k:self.convert(v,namespace,default) for k,v in obj.items()}) return ret - # print( type(obj),"not converted") return obj def findAllVariables(self,src): @@ -62,7 +60,7 @@ class ArgsConvert(object): dl = s.split(arg) var = self.getVarName(arg) v = self.getVarValue(var,namespace,default) - if type(v) != type(u''): + if not isinstance(v, str): if len(args) == 1 and s.startswith(self.preString) and s.endswith(self.subfixString): return v v = str(v) @@ -156,7 +154,7 @@ if __name__ == '__main__': 'a':12, 'b':'of', 'c':'abc', - u'是':'is', + '是':'is', 'd':{ 'a':'doc', 'b':'gg', diff --git a/appPublic/dictObject.py b/appPublic/dictObject.py index ef443d7..c558968 100755 --- a/appPublic/dictObject.py +++ b/appPublic/dictObject.py @@ -64,6 +64,10 @@ class DictObject(dict): """ self[attr] = value + def get(self, k, defv=None): + v = super().get(k, defv) + return self.__DOitem(v) + def copy(self): return self.__DOitem(super().copy())