|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
问题1:
我先改写了int类
- >>> class int(int):
- def __add__(self, other):
- return self - other
复制代码
实例化类,并相加,得到预期的结果
- >>> a = int(5)
- >>> b = int(7)
- >>> a + b
- -2
复制代码
我一直以为c = 12就是相当于c = int(12),所以直接赋值,但结果却……
- >>> c =12
- >>> d =7
- >>> c+d
- 19
复制代码
我又仔细查看了类型,的确不一样
- >>> type(a)
- <class '__main__.int'>
- >>> type(c)
- <class 'int'>
复制代码
c = 12到底是不是实例化一个对象?它的机制到底是什么?
问题2:
加法对应的就是魔法方法__add__
如下操作是可以的
- >>> a = 3
- >>> a.__add__(5)
- 8
复制代码
而这样就不行
- >>> 3.__add__(5)
- SyntaxError: invalid syntax
复制代码
但加上括号就行了
为什么? |
|