这里我从str类的__new__()方法来说明。
str的__new__(cls,*args)必须传入一个参数cls,他是str的子类(注意不是实例)。
__new__()的返回值是该子类的实例,表现为字符串。
>>> class st(str):
... def __new__(cls,value,title):
... ins = str.__new__(cls,value)
... ins._title = title
... return ins
... def title(self):
... return self._title
...
>>> s = st('hello','hi')
>>> s
'hello'
>>> str.__new__(st,'ok')
'ok'
>>> a = str.__new__(st,'ok')
>>> type(a)
<class '__main__.st'>
>>> a
'ok'