python中,请问定义子类,其中括号中的基类第一个字母没有用大写字母,new魔法方法在此处的作用

问题遇到的现象和发生背景

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__出来的实例