关于__new__的小疑问
代码如下,有四个小问题:1、为什么返回 str.__new__(cls,string)没有形成类似递归的循环?
2、实例化的时候为什么只打印了1,没有返回字符串?
3、为什么第四行的实例对象string前面不用加 self. ?
4、这些‘魔法方法’是不是所有定义的类都拥有,只有需要修改默认参数时才需要写出来进行修改?
新手,问题比较多,麻烦大家了
class CapStr(str):
def __new__(cls,string):
print(1)
string = string.upper()
return str.__new__(cls,string)
1你调用的是str的而不是自身的
2你这里就没有返回,你命令行要单输入实例名字
3这里没有self,实例还未创建
4一般自带的类都有,但是每个类的魔法方法也不一样
页:
[1]