我正在编写一个python客户端来与RESTAPI交互。API使用JSON,我需要创建的一些对象是嵌套的,并且有很多可选参数。我试图用基本对象的类来表示嵌套的JSON,并混合所有可选的嵌套属性。我对python非常陌生,因此任何关于管理嵌套JSON而不重复一堆代码的好方法的建议也会有所帮助
下面是一个例子:
class paramMixin(object):
def __init__(self, prop1, prop2, **kwargs):
self.prop1 = prop1
self.prop2 = prop2
self.__dict__.update(kwargs)
class baseObject(paramMixin):
def __init__(self, name, prop1, prop2, **kwargs):
self.name = name
self.__dict__.update(kwargs)
super().__init__(prop1, prop2)
这样做会生成如下对象:
>>> myObj = baseObj('myName', 'myProp1', 'myProp2')
>>> myObj.prop1
'myProp1'
我希望发生的是:
>>> myObj = baseObj('myNmae', 'myProp1', 'myProp2')
>>> myObj.paramMixin.prop1
'myProp1'
我知道我可以很明显地拥有所有需要嵌套为字典的属性,但如果可以的话,我正试图将其抽象出来
我知道这可以奏效:
class baseObject(object):
def __init__(self, name, prop1, prop2)
self.name = name
self.prop1 = prop1
self.prop2 = prop2
然后定义如下:
>>> myObj = baseObject('myName', {'paramMixin': 'myProp1'}, {'paramMixin': 'myProp2'})
>>> myObj.paramMixin.prop1
'myProp1'
我试图定义的许多Mixin对象可以在多种类型的对象中重用。这就是为什么我试图找到一种方法来定义它一次,并且只在我需要的时候构建它
您需要在baseObject的
__init__
方法内创建一个paraMixin
obj相关问题 更多 >
编程相关推荐