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)