python中,请问定义子类,其中括号中的基类第一个字母没有用大写字母,对不对
new魔法方法的作用是什么,能否结合代码讲解过程
>>> class CapStr(str):
def __new__(cls,string):
string = string.upper()
return str.__new__(cls,string)
>>> a = CapStr("I love FishC")
>>> a
'I LOVE FISHC'
python中,请问定义子类,其中括号中的基类第一个字母没有用大写字母,对不对
对于这个例子是对的, str 是类 , 用Str 反而会出错
new魔法方法的作用是什么,能否结合代码讲解过程
__new__方法使用和功能:
1、__new__方法用于给类创建对象,并且返回这个对象。
2、因为给类创建实例,所以至少传递一个参数cls,参数cls 代表实例化的类,此参数在实例化时由Python解释器自动提供
3、在类实例化是内部创建实例的函数,并返回这个实例,所以他是实例中最先调用的方法,一般不要认为的定义该方法
4、创建实例返回实例,所以要有返回值,return父类__new__出来的实例,或者直接是object的__new__出来的实例