方法中参数的多个值

时间:2017-05-23 13:42:06

标签: python python-3.x oop typeerror

运行时我总是遇到这个错误:

TypeError: request() got multiple values for argument 'query'

我在stackoverflow上研究了几个«类似»问题,但没有任何帮助。任何打击都会受到高度赞赏。

以下是代码的摘录:

#!/usr/bin/python3

class myClass:
  def __init__(self):
    return;

  def functionXYZ(var):
    return;

  def request(query=''):
    xyz = self.functionXYZ(var=query);
    return xyz;

conn = myClass();
qry = 'SOME STRING';
res = conn.request(query=qry);
print(res);

1 个答案:

答案 0 :(得分:2)

你没有将self添加到班级的方法中,这让你感到很痛苦。

方法调用将实例隐式地作为第一个参数传递,也就是说,您对request的调用是:

  1. 隐含地将self作为query
  2. 的值传递
  3. 第二次使用query传递query=qry
  4. self添加到您的方法中,或者,如果您不需要该实例,请将它们设为staticmethod。此外,使用pass代替return;总是更好(并且不需要;)。