python学习之__new__()

这里我从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'

 

原文地址:https://www.cnblogs.com/leomei91/p/7873617.html