Python函数告诉我,当我只发送一个参数时,我发送了两个参数

Python函数告诉我,当我只发送一个参数时,我发送了两个参数,python,google-app-engine,Python,Google App Engine,我正在使用谷歌的框架 下面我要做的只是将的结果发送到一个函数,该函数将获取结果并使用它们创建一个表 class Utilities(): def create_table(results): #Create a table for the results.... 变量results从query.fetch返回两个结果 results = query.fetch(10) #This returns two results util = Utilities() util.create_

我正在使用谷歌的框架

下面我要做的只是将的结果发送到一个函数,该函数将获取结果并使用它们创建一个表

class Utilities(): 
  def create_table(results): 
  #Create a table for the results....
变量
results
从query.fetch返回两个结果

results = query.fetch(10) #This returns two results
util = Utilities()
util.create_table(results)
然后我得到了错误

util.create_表(结果)类型错误: create_table()正好需要1 论点(已给出2)


我原以为
结果
会自动通过引用传递。我错了吗

当方法绑定到实例时,python隐式设置第一个参数。在本例中,使用util。在类中定义方法时,第一个参数通常命名为
self
,是绑定对象

class Utilities():
    def create_table(self, results):
         pass # more to come
应该很好:)

编辑:
这也意味着,当未绑定到实例(即obj.fun())时,也可以调用此类方法:


传递给方法的第一个参数是类的实例。定义它时必须考虑到这一点

def create_table(self, results):

你应该在课堂上仔细阅读。类get(self)作为第一个参数发送的一种方法

换成

class Utilities(): 
    def create_table(self, results): 
应该是:

def create_table(self, results):

事实上,self总是被传递的,但是方法需要知道才能接收它

每个python类方法的第一个参数必须是类本身的实例。 按照惯例,
self
是用于引用类实例的关键字。没有理由使用不同的关键字,强烈建议不要遵循
self
约定:)。 定义class方法时,必须包含
self
参数,但是,使用class方法时,
self
参数隐式存在

例如:

class C:
def cMethod(self, a1, a2):
    pass
[...]

>>> cinstance = C()
>>> cinstance.cMethod(x1, x2)
我只想指出这两个方面:)。
拜拜。

为了澄清一点,将create_table(results)更改为create_table(self,results),只是想明确表示OP方法当前的定义方式,参数
results
实际上是带有不同名称的“
self
”。它实际上是一个接受0(外部)参数的函数,这是一个添加的缩进,因为我们处理的是一种重要的语言。
class C:
def cMethod(self, a1, a2):
    pass
[...]

>>> cinstance = C()
>>> cinstance.cMethod(x1, x2)