从可在python中调用的子属性访问根对象属性

时间:2019-09-24 17:07:09

标签: python soap zeep

我有一个“ Subscriber”类,可以处理大量WSDL中列出的具有各种SOAP方法的订户,如下所示:

class Subscriber(object):
    soaps = {}

    @classmethod
    def load_soap(cls, name, wsdl):
        cls.soaps[name] = zeep.Client(wsdl=wsdl).service

    def __getattr__(self, item):
        if item in self.soaps:
            return self.soaps[item]
        else:
            raise AttributeError

    def __init__(self, msisdn):
        self.msisdn = msisdn

然后像这样使用它:

Subscriber.load_soap('Group', 'http://...')
ab1 = Subscriber('12221112233')
ab1.Group.CreateGroup(msisdn = ab1.msisdn, code = i, length = 1)

我只想将ab1.Group.CreateGroup(code = i, length = 1)msisdn一起使用,并且将其他强制性属性自动添加到SOAP调用中。我可以列出特定SOAP方法的强制属性,并将其与Subscriber属性的列表进行比较,但是如何将代码添加到zeep.Client.Service类的可调用子对象中呢?我认为我需要partial()__call____getattr__的某种组合,但无法将它们正确粘合在一起。

有什么建议吗?

0 个答案:

没有答案