魔法方法__new__
本帖最后由 qin_yin 于 2020-10-28 23:09 编辑class CapStr(str):
def __new__(cls,string):
string = string.upper()
return str.__new__(cls,string)
a = CapStr('I love Fishc.com!')
a
问题:return str.__new__(cls,string)是怎么具体的一个运行,为什么不直接返回string,在我看来都一样啊
问题:str.__new__(cls,string),这一行的代码我的理解是调用str的__new__方法传入参数类(Capstr),string,疑问str的__new__方法是怎么执行的(str的__new__方法代码是怎么写的)
求大佬详解下__new__方法,困在这里好久了 >>> class CapStr(str):
def __new__(cls,string):
string = string.upper()
return str.__new__(cls,string)
>>> a = CapStr('I love Fishc.com!')
>>> type(a)
<class '__main__.CapStr'>
======================如果返回字符串呢?==========
>>> class CapStr(str):
def __new__(cls,string):
string = string.upper()
return 'I love Fishc.com!'
>>> a = CapStr('I love Fishc.com!')
>>> type(a)
<class 'str'>
页:
[1]