2013-09-14 4 views
0

Мне просто интересно, возможно ли создать функцию в Python, которая работает с любой последовательностью. Например:Можно ли создать метод, который работает с любой последовательностью

>>> def head(self): 
>>>  return self[0] 
>>> 
>>> a = [1, 2, 3] 
>>> a.head() 
1 
>>> xrange(10).head() 
0 
+0

Почему бы просто не написать 'head (seq)' вместо 'seq.head()'? – delnan

+0

@delnan Я хотел знать, можно ли использовать синтаксис метода –

ответ

2

Вы не можете расширить встроенные типы, нет.

Вы можете использовать только подкласс, но это помогает только в том случае, если у вас есть полный контроль над созданием и использованием.

+0

@Martin, но как я могу назвать эту функцию. Я пробовал код выше и получил ошибку '' list 'объект не имеет атрибута' head''. Я могу назвать его как 'head (a)', но я хочу назвать его как метод списка. –

+0

@RomanPekar: Сначала я неправильно разобрал ваш вопрос; вы не можете расширять встроенные типы. –

+0

Да, спасибо Мартин, я подожду немного для других ответов, а затем приму твое, если кто-то не придумает какое-нибудь приятное обходное решение –

 Смежные вопросы

  • Нет связанных вопросов^_^