对不起,有关类的菜鸟问题。 我正在尝试将肥皂客户端分配给类函数内的变量,然后在其他类函数中访问该变量。 我没有任何参数可以传递给setup_client()函数。

在下面的示例代码中,如何使self.clientsetup_client()外部可访问,以便可以在use_client()使用它,并且也可以使self.responseuse_client()外部可用

class soap_call(self):
    def __init__(self):
        # What goes here?
        self.client = # what?
        self.response = # what?

    def setup_client(self):
        credentials = {'username': 'stuff', 'password': 'stuff'}
        url = 'stuff'
        t = HttpAuthenticated(**credentials)
        self.client = suds.client.Client(url, transport=t)

    def use_client(self):
        self.response = self.client.service.whatever
        print self.response

我很快意识到,如果在类定义中添加可选的客户端参数(self, client=None)并包含self.client = client ,则尝试在函数中使用它时会出现None类型错误。

我意识到我只是对班级缺乏了解。 我已经完成了有关类的一些一般性阅读,但是没有遇到任何描述我正在处理的具体示例。

===============>>#1 票数:2 已采纳

在这两种情况下,我都将选择None,因为从逻辑上讲,在对象实例化时都不存在它们。 它还允许您对逻辑进行一些合理性检查,例如

class SoapCall(object):
    def __init__(self):
        self.client = None
        self.response = None

    def setup_client(self):
        credentials = {'username': 'stuff', 'password': 'stuff'}
        url = 'stuff'
        t = HttpAuthenticated(**credentials)
        if self.client is None:
            self.client = suds.client.Client(url, transport=t)

    def use_client(self):
        if self.client is None:
            self.client = self.setup_client()

        self.response = self.client.service.whatever
        print self.response

===============>>#2 票数:0

初次创建实例时,可以不指定客户端,这是很好的选择,但是在调用setup_client之前,必须确保先调用use_client

  ask by AutomaticStatic translate from so

未解决问题?本站智能推荐:

3回复

python 2.7定义一个类,如果不带参数调用该类将显示其属性

我有这样的课: 我可以使用以下方法创建该类的对象: 我可以使用 该类将具有很多属性,而我很快就会忘记它们的名称...如果我一个人叫D ,我需要的是提示一些有用的信息。 例如: 其中X和Y是对应的值。 是否有实现此目标的方法? 还是其他(更好)的方法?
1回复

不带参数的Python继承

因此,我现在开始对自己的想法有所了解。 我觉得我在python中发现了一个错误,但我敢肯定情况并非如此。 有人可以指出我所缺少的吗? 给 而 工作正常。 到底是怎么回事?
3回复

Python继承,类级变量,__ init__不带参数

编辑:这是一个愚蠢的错误,看看答案,但我的init方法没有定义self变量。 我有几个python类是管道中的阶段。 它们继承自基类。 继承类重写key和_preprocessors 。 在添加显式__init__()方法之前,一切正常,现在我收到以下错误: TypeErr
1回复

初学者的python类构造函数不带参数

我只是在学习python,似乎犯了一个小错误。 有了这段代码,对Patterns的构造函数的使用就会出错。 “ cit_ref = Patterns(patstring,3)TypeError:此构造函数不接受任何参数”
2回复

Python类参数,在哪里定义

与 那么,第一段代码是否只是使类成为静态类,而只能通过该类而不使用参数对其进行调整? 如果是这样,这有什么用?
1回复

“TypeError:object()不带参数”将python2元类转换为python3

我正在将一些代码从python2转换为python3,并且我遇到了一个带有元类的错误。 这是工作的python2代码(简化): 这是转换后的python3代码: 如果我运行python2 test2.py ,它会运行。 如果我做python3 test3.py ,我得到
4回复

不带参数传递Python函数

我已经尝试使用Google搜索,但是没有找到明确的答案: 为什么,当您运行以下代码时: 您得到以下响应: 我当然知道这个函数没有参数,但是这个响应具体是什么呢? 该字母和数字字符串是什么意思(“ 0x7f5111010938”)? 感谢您提供任何信息!
2回复
1回复

Python“ object()不带参数”错误

当我清楚地使用init函数声明参数时,我遇到了这个问题。 在此处链接我的代码: 如果有人可以解释我为什么会发生此错误,我将不胜感激。 我不知道为什么如果有构造函数,该错误会继续: TypeError:object()不接受任何参数
2回复

TypeError:object()不带参数-python

我是python的新手,正在尝试使用类和对象编写程序。 以下是我的代码: 当我运行程序时,它给我一个错误,即对象没有参数。 但是我已经在类的构造函数中描述了参数。 请帮忙。