鱼C论坛

 找回密码
 立即注册
查看: 1087|回复: 7

[已解决]python中关于魔法方法__new__的疑问

[复制链接]
发表于 2018-5-12 01:44:37 | 显示全部楼层 |阅读模式
3鱼币
  1. class Nint(int):
  2.     def __new__(cls, arg=0):
  3.         if isinstance(arg, str):
  4.             total = 0
  5.             for each in arg:
  6.                 total += ord(each)
  7.             arg = total
  8.         return int.__new__(cls, arg)
复制代码


    def __new__(cls, arg=0)
请问这里的 arg参数是new 默认的么?还是随便填写的什么都可以?

if isinstance(arg, str) 这句 arg  和 str 是什么意思?
最佳答案
2018-5-12 01:44:38
铁岭小刚fishc 发表于 2018-5-12 11:18
你好
书上说这个 isinstance(object, classinfo)  第一个参数object是第二个参数classinfo的实例对象返 ...

hi

isinstance()是内置函数
>>> isinstance('hello',str)
True
>>> isinstance(123,str)
False

最佳答案

查看完整内容

hi isinstance()是内置函数 >>> isinstance('hello',str) True >>> isinstance(123,str) False
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-5-12 01:44:38 | 显示全部楼层    本楼为最佳答案   
铁岭小刚fishc 发表于 2018-5-12 11:18
你好
书上说这个 isinstance(object, classinfo)  第一个参数object是第二个参数classinfo的实例对象返 ...

hi

isinstance()是内置函数
>>> isinstance('hello',str)
True
>>> isinstance(123,str)
False
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-5-12 07:48:24 | 显示全部楼层
def __new__(cls, arg=0) 请问这里的 arg参数是new 默认的么?还是随便填写的什么都可以? # 后者,arg是变量名

if isinstance(arg, str) 这句 arg  和 str 是什么意思? # isinstance('hello',str) ,判定'hello' 是否为str
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-5-12 08:36:31 | 显示全部楼层
1.不是默认,这里为了实现功能定义的
2.检查arg是不是字符串类型而已
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-5-12 09:41:18 | 显示全部楼层
1. cls、args都不是默认,不过处于代码规范就像self不写this一样cls还是写cls表示一个类的方法。
2. isinstance(obj, cla)函数判断obj是否属于cla类。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2018-5-12 10:27:42 | 显示全部楼层
塔利班 发表于 2018-5-12 08:36
1.不是默认,这里为了实现功能定义的
2.检查arg是不是字符串类型而已

好的 谢谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-5-12 11:02:27 | 显示全部楼层
俺是小白,来学经验的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2018-5-12 11:18:16 | 显示全部楼层
thexiosi 发表于 2018-5-12 07:48
def __new__(cls, arg=0) 请问这里的 arg参数是new 默认的么?还是随便填写的什么都可以? # 后者,arg是变 ...

你好
书上说这个 isinstance(object, classinfo)  第一个参数object是第二个参数classinfo的实例对象返回True,否则返回False.
也没说这个BIF 可以做类型判断的介绍。。。
isinstance.jpg
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-3-28 22:02

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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