2012-03-20 1 views
2

Как я буду писать функции python, которые можно присоединить к строкам (или другому объекту)?python, добавляющий новые методы к встроенным типам

, например:

"FOO".lower() 

Как они получают вход? Являются ли они генераторами?

Я с радостью прочитаю об этом, но я действительно не знаю, что я ищу.

+1

Это [метод] (http://en.wikipedia.org/wiki/Method_ (computer_programming)) – DrTyrsa

ответ

6

Строки - это объекты и, следовательно, методы. lower() - один из них.

Вы не можете добавить пользовательский метод str, unicode или любой другой (встроенные написанном в C) классах - см Implementing a custom string method и Extending builtin classes in python

+0

спасибо ... Я чувствую себя действительно теперь глупо, совершенно забыл, что это был собственный класс! сделать гораздо больше смысла! – beoliver

1

Они не являются генераторами. Они равны methods, определенным на классе string.

Вы можете создать свой собственный, как это:

>>> class MyString(str): 
... def reversed(self): 
...  return self[::-1] 
... 
>>> x = MyString('spam and eggs') 
>>> x.reversed() 
'sgge dna maps'