|
发表于 2017-12-6 15:42:03
|
显示全部楼层
举个实际例子,你运行一下就知道了:
- class CS(str):
- def __new__(cls,string):
- print('new')
- string=string.upper()
- return str.__new__(cls,string)
- ## return str.__new__(cls)
- def __init__(self,string='aaa'):
- print('init')
- self.string=string
复制代码
输出结果为:
>>> c=CS('bbb')
new
init
>>> c
'BBB'
>>> c.string
'bbb'
>>>
第二个例子,不传参数:
- class CS(str):
- def __new__(cls,string):
- print('new')
- string=string.upper()
- ## return str.__new__(cls,string)
- return str.__new__(cls)
- def __init__(self,string='aaa'):
- print('init')
- self.string=string
复制代码
结果为:
>>> c=CS('bbb')
new
init
>>> c
''
>>> c.string
'bbb'
>>> |
|