【发布时间】:2013-08-11 13:22:02
【问题描述】:
我想给一个类我做了一个字符串所有的方法(replace,isupper,等等)
下面是一些示例代码:
>>> class MyClass(str):
... def __init__(self, string):
... self.string = string
... def __str__(self):
... return self.string
...
>>> MyClass("aaa").replace("a", "$")
'$$$'
>>>
这完全符合我的要求。但是,我对如何从str 继承有点困惑。我可以像上面那样做,或者:
class MyClass(__builtins__.str):
...
甚至:
import types
class MyClass(types.__builtins__["str"]):
总结一下,我的问题是:从str(或任何其他内置的)继承的最佳方式是什么?是我给的还是我没有想到的更好的方法。
谢谢。
【问题讨论】:
-
一般来说,您不应该关心
__builtins__。只需直接使用str。但是,这里有实际问题吗? -
@MartijnPieters - 不,直接使用
str没有任何问题。我只是想澄清一下从内置继承的最佳方式是什么。因为有几种方法可以做我想做的事,所以我喜欢选择最好的。
标签: python class inheritance built-in