Python方法重载,python 构造函数重载
运算符重载大蟒
欢迎来到计算机编程语言操作符重载教程。我们已经学习了大蟒类,今天我们将学习面向对象计算机编程语言的另一个有趣的特性。
欢迎使用计算机编程语言操作符重载教程。正如我们已经了解计算机编程语言类一样,今天我们将学习面向对象大蟒的另一个有趣的功能。
计算机编程语言运算符重载(python操作符重载)Python操作符重载使我们能够对计算机编程语言对象使用数学、逻辑和位操作符,就像任何原始数据类型一样。
计算机编程语言运算符重载使我们能够像对待任何原始数据类型一样,在大蟒对象上使用数学,逻辑和按位运算符。
例如,您可以使用运算符轻松地将3和5这两个数字相加,即3 5。结果是8。
例如,您可以使用运算符轻松地将两个数字3和5相加,即3 5。结果为8。
但是如果你想添加两个圆(一个圆类的对象)并做一个半径为两倍的圆呢?或者,如果您想添加两个笛卡尔网格点以产生另一个具有相同""运算符的点,该怎么办?计算机编程语言操作符重载允许您执行类似的操作。
但是,如果您想添加两个圆(圈起来类的对象)并使半径为两倍的圆呢?或者,如果您想添加两个笛卡尔网格点以使用相同的" "运算符产生另一个点,该怎么办?计算机编程语言运算符重载使您可以像执行那些操作一样执行操作。
计算机编程语言运算符重载示例(Python运算符重载示例)现在,我们来看一个重载数学运算符的示例。
现在,让我们看一个重载数学运算符的例子。
类GridPoint: #Line: 1,声明一个类def __init__(self,x,y):self。x=x自我。y=y # Line:4 def _ _ add _ _(自身,其他):#等同于运算符返回网格点(自我。x其他。自我。其他人。y)def _ _ str _ _(self):# Line:12,返回对象打印时的属性string=str(self。x)string=string , str(self.y)返回string # Line:12点1=网格点(3,5使用__添加_ _()方法添加两个点print(point3) #Line: 17,使用__str__()方法打印属性第一行到第四行表示类网格点的声明和构造函数方法的定义。让我们看看第6行和第七行。
第一至四行表示网格点类的声明和构造方法的定义。让我们看一下第6行和第七行。
def __add__(自身,其他):#等同于运算符返回网格点(self.x other.x,self.y other.y)当我们使用""运算符作为数学加法运算时,会隐式调用__添加_ _()方法。
当我们使用 运算符作为数学加法运算时,__添加_ _()方法被隐式调用。
因此,如果我们要添加网格点类的两个对象,我们必须重新定义这个方法。因此,这里我们需要创建网格点类的另一个实例,其x值是""运算符周围两个网格点实例中x的总和,y值也是""运算符周围两个网格点实例中y的总和。
因此,如果要添加网格点类的两个对象,则必须重新定义此方法。因此,在这里我们需要创建另一个网格点类的实例,其x的值是在 运算符附近的两个网格点实例中x的总和,而y的值也是在周围的两个网格点实例中y的总和。 运算符。
第9到12行定义了__str__()方法,当我们试图打印对象时会调用这个方法。这也是一个内置的方法。但是我们将重载该方法,以便它以我们指定的格式打印。
第9至12行定义了__str__()方法,当我们尝试打印对象时会调用该方法。这也是一个内置方法。但是我们将重载该方法,以便它以指定的格式打印。
第14行和第15行,我们创建了网格点的两个对象,即第一点和第二点.现在,看第16行。使用""运算符添加网格点类的两个实例,并将其分配为网格点的另一个实例蟒蛇。操作符重载可以帮助你做到这一点。所以,当第17行显示如下图所示的输出时,不要感到惊讶。
第14和15行,我们创建了网格点的两个对象,即第一点和第二点。现在,看第16行。使用 运算符添加网格点类的两个实例,并将它们分配为网格点的另一个实例Python。com .运算符重载可以帮助您做到这一点。因此,当第17行显示如下图所示的输出时,请不要感到惊讶。
数学运算符列表(数学运算符列表)这里列出了可以重载的运算符,并以类似的方式与大蟒运算符重载一起使用。
这是可以重载的运算符列表,并且可以类似的方式与大蟒运算符重载一起使用。
OperatorDescriptionMethod方法加法__添加_ _(自己,其他)-减法__sub__(自己,其他)*乘法__mul__(自己,其他)/真除法__truediv__(自己,其他)//地板除法__floordiv__(自己,其他)%余数__mod__(自己,其他)* *幂__pow__(自己,其他)按位和__和_ _(自己,其他)按位or__or__(self,other)^bitwise xor _ _ xor _ _(自身,其他)操作员描述方法加成__添加_ _(自己,其他) 减法__sub __(自己,其他) * 乘法__mul __(其他)/真师__truediv __(自己,其他) //楼层部__floordiv __(自己,其他) % 余__mod __(自己,其他) ** 功率__pow __(自己,其他)和按位与__和__(自己,其他) 按位或__或__(自己,其他)按位异或__xor __(自己,其他)在计算机编程语言中重载关系运算符(在大蟒中重载关系运算符)关系运算符在计算机编程语言中以非常相似的方式重载。但不同的是,那些操作符通常返回对/错,而不是对象的另一个实例。让我们看一个例子。
关系运算符在大蟒中以非常相似的方式重载。但是不同之处在于,这些运算符通常返回对/错,而不是对象的另一个实例。让我们来看一个例子。
类网格点:def _ _ init _ _(self,x,y):self。x=x自我。y=y def _ _ gt _ _(自身,其他):#重载大于运算符返回self.x other.x #如果左操作数中的x值大于右操作数中的值,则返回没错。否则返回false def _ _ str _ _(self):string=str(self。x)string=string , str(self.y)返回string point1=GridPoint(3,5) point2=GridPoint(-1,4) if point1 point2: #与重载的__gt__()方法打印(点1大于point2) else: print(point1不大于第2点’)查看第6行,这里已经加载了大于运算符。如果传统的""运算符左侧的操作数大于右侧的操作数,则该运算符返回没错。我们将使用这个属性来比较网格点类的两个实例。
查看第6行,已加载"大于"运算符。如果左侧的操作数大于右侧的操作数,则常规的运算符将返回没错。我们将使用此属性来比较网格点类的两个实例。
然后在第17行,我们比较网格点类的对象,以获得一个布尔类型值,该值将确定第一个对象是否具有较大的值x .在这种情况下,当3大于-1时,关系运算符返回没错。结果,程序打印出"点一大于点2"。
然后在第17行,我们比较GridPoint类的对象以获得一个布尔值,它将确定第一个对象是否具有更大的 x 值。在这种情况下,当3大于-1时,关系运算符返回true。结果是程序打印出“点1大于点2”。
python中的more relational operators这里是一个可以用同样方式重载的关系运算符列表。
这是一个可以用同样方式重载的关系运算符列表。
operator description method Greater than _ _ gt _ _(self,other)=大于等于__ge__(self,other)小于__lt__(self,other)=小于等于__le__(self,other)==等于__eq__(self,other)!=不等于__ne__(self,other)运算符描述法优于.__gt __ (self,others)=大于或等于__ge __ (self,others)小于__lt __ (self,others)=小于或等于__le __ (=不等于__ne __ (self,others)今天关于python中的运算符重载就讲到这里。希望很快能有更多的教程和你在一起。
编码快乐!
今天讲的是python中的运算符重载。希望很快能有更多的教程和你一起。
编码快乐!
参考:Python.org文件
参考:Python.org文件
出发地:https://www.journaldev.com/14637/python-operator-overloading
运算符重载python
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。