25 lines
646 B
Python
25 lines
646 B
Python
|
# python字典增强
|
||
|
|
||
|
|
||
|
# python字典转js字典
|
||
|
class JsDict(dict):
|
||
|
|
||
|
def __new__(cls, *args, **kwargs):
|
||
|
cls.__setitem__ = cls.__setattr__
|
||
|
return super().__new__(cls)
|
||
|
|
||
|
def __init__(self, dic):
|
||
|
for key, value in dic.items():
|
||
|
self.__setattr__(key, value)
|
||
|
|
||
|
def __make_item__(self, item):
|
||
|
if type(item) == dict:
|
||
|
item = JsDict(item)
|
||
|
elif type(item) == list:
|
||
|
item = [self.__make_item__(one) for one in item]
|
||
|
return item
|
||
|
|
||
|
def __setattr__(self, key, item):
|
||
|
dict.__setattr__(self, key, self.__make_item__(item))
|
||
|
self.update(self.__dict__)
|