2015-05-15 3 views
0

Вот код:TypeError:() метод занимает ровно 2 аргумента (3 дано)

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) 

Когда я выполняю этот код, питон бросает следующие ошибки:

[1, 2, 3, 4, 5, 6, 7, 8, 9]

Traceback (most recent call last):

File "/home/Sample.py", line 19, in

print Child().chunks(k,2)

TypeError: chunks() takes exactly 2 arguments (3 given)

Пожалуйста, найти свой сниппет !

+0

определение функции порций (я, л, п): ' – kay

+0

@Kay TypeError: ломти() принимает ровно 2 аргумента (3 данные) , Мне нужно объяснение –

+1

'self' передается автоматически, поэтому вы фактически передаете' (self, k, 2) '(3 аргумента) методу' chunks', но он определен как accept '(l, n) '(2 аргумента), следовательно, ошибка. Отредактируйте ответ Кей и убедитесь сами! – Matthew

ответ

2

экземпляра Метод:

метод экземпляра: Метод, который определен внутри класса и принадлежит только к текущему экземпляру класса.

chunks способ как пример способ в классе.

эд

class Child(object): 
    def chunks(self, l, n): 
     #  ^^^ 
     pass 
     # do coding 

Static Method:

class Child(object): 
    @staticmethod 
    def chunks(l, n): 
     pass 
     # do coding 
Смежные вопросы