笨鸟编程-零基础入门Pyhton教程

 找回密码
 立即注册
查看: 4794|回复: 1

[问题求助] 关于__new__的小疑问

[复制链接]

新手上路

Rank: 1

积分
13
发表于 2022-3-6 12:48:19 | 显示全部楼层 |阅读模式
代码如下,有四个小问题:
1、为什么返回 str.__new__(cls,string)没有形成类似递归的循环?
2、实例化的时候为什么只打印了1,没有返回字符串?
3、为什么第四行的实例对象string前面不用加 self. ?
4、这些‘魔法方法’是不是所有定义的类都拥有,只有需要修改默认参数时才需要写出来进行修改?

新手,问题比较多,麻烦大家了

  1. class CapStr(str):
  2.     def __new__(cls,string):
  3.         print(1)
  4.         string = string.upper()
  5.         return str.__new__(cls,string)
复制代码


我知道答案 回答被采纳将会获得10 C币 已有1人回答
回复

使用道具 举报

新手上路

Rank: 1

积分
15
发表于 2022-3-6 12:48:47 | 显示全部楼层
1你调用的是str的而不是自身的
2你这里就没有返回,你命令行要单输入实例名字
3这里没有self,实例还未创建
4一般自带的类都有,但是每个类的魔法方法也不一样
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|笨鸟自学网 ( 粤ICP备20019910号 )

GMT+8, 2024-9-8 09:52 , Processed in 0.027784 second(s), 22 queries .

© 2001-2020

快速回复 返回顶部 返回列表