Python 运算符重载中__add__(self,other)的other.x如何理解?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python 运算符重载中__add__(self,other)的other.x如何理解?相关的知识,希望对你有一定的参考价值。
class A: ... def __add__(self,other): return self.x+other.x ... 1)这里的other.x为什么是参数调用属性? 2)这个other.x和self.x有什么区别?
参考技术A 估计是讲不明白。只能尽力。面向对象的基础需要再理解一下。self是第一个参数。在python里是指“实例”本身。就是自己。
这个class
A有一个属性是x
other是第二个参数,它代表另一个class
A的实例。当然它也有一个属性x
__add__是一个重载加号的函数。意思是将两个class
A实例相加,结果等于两个实例的x变量相加之和。
other.x与self.x当然是指不同实例中的变量x
python运算符重载
python运算符重载就是在解释器使用对象内置操作前,拦截该操作,使用自己写的重载方法。
重载方法:__init__为构造函数,__sub__为减法表达式
class Number: def __init__(self, start): self.data = start def __sub__(self, other): return Number(self.data - other) >>>X = Number(5) >>> Y = X - 2 >>> Y.data 3
其他重要的还有(省去前后的__):
del析构函数, add加法表达式, or, repr打印(print), str转化(str), call函数调用(不懂), getitem,setitem索引运算
len长度, bool布尔测试, cmp比较
def __setitem_(self, index, value): self.data[index] = value def __getItem__(self, index): return self.data[index]
以上是关于Python 运算符重载中__add__(self,other)的other.x如何理解?的主要内容,如果未能解决你的问题,请参考以下文章
流畅python学习笔记:第十三章:重载运算符__add__,__iadd__,__radd__,__mul__,__rmul__,__neg__,__eq__,__invert__,__pos__(