python向内置类型添加新方法

时间:2012-03-20 10:34:16

标签: python function chaining

我如何编写可附加到字符串(或其他对象)的python函数?

例如:

"FOO".lower()

他们如何收到投入? 他们是发电机吗?

我很乐意读到它,但我真的不知道我在找什么。

2 个答案:

答案 0 :(得分:6)

字符串是对象,因此有方法。 lower()就是其中之一。

您无法向strunicode或任何其他内置(用C编写)类添加自定义方法 - 请参阅Implementing a custom string methodExtending builtin classes in python

答案 1 :(得分:1)

他们不是发电机。它们只是在string类上定义methods

您可以像这样创建自己的:

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