【发布时间】:2015-05-15 10:00:03
【问题描述】:
这是一个代码:
class Child(object):
def chunks(l, n):
""" Yield successive n-sized chunks from l.
"""
for i in xrange(0, len(l), n):
yield l[i:i+n]
k= range(1, 10)
print k
print Child().chunks(k,2)
当我执行这段代码时,python 抛出以下错误:
[1, 2, 3, 4, 5, 6, 7, 8, 9]
Traceback(最近一次调用最后一次):
文件 “/home/Sample.py”,第 19 行,在
中打印 Child().chunks(k,2)
TypeError: chunks() 只需要 2 个参数(给定 3 个)
请找到我的sn-p!
【问题讨论】:
-
def chunks(self, l, n): -
@Kay TypeError: chunks() 只需要 2 个参数(给定 3 个),我需要一个解释
-
self是自动传递的,因此您实际上是将(self, k, 2)(3 个参数)传递给chunks方法,但它被定义为接受(l, n)(2 个参数),因此错误。编辑 Kay 的答案,自己看看! -
@Matthew 谢谢。让我试试……
-
chunks显然不需要在Child中;让它成为一个函数。
标签: python python-2.7