python里加号,python类添加方法

  python里加号,python类添加方法

  本文主要介绍python对用户自定义类使用加号 。如果直接" "两个对象,肯定不行,因为加法运算符__add__()还没有为CartoonImage类重载。下面小编举例说明内容,有需要的可以参考。

  00-1010 1.python的魔法__add__()2。重载CartoonImage 2.1。实现CartoonImage类3。测试“”能否实现图像拼接3.1。对CartoonImage对象使用“”操作。如果代码是“1 1”,python控制台必然输出2,这非常符合我们对“数值类”的理解

  假设你现在要设计一个CartoonImage类,能实现它的对象之间的“”操作吗?例如,如果要对两个卡通图像对象卡通_1和卡通_2使用“”运算符,以获得最右边的图像(即拼接函数):

  如果直接" "两个对象肯定不行,因为加法运算符__add__()还没有在CartoonImage类上重载。例如,下面的代码不起作用:

  # 1:创建对象

  cartoon _ 1=cartonimage( data/left . jpg )

  cartoon _ 2=cartonimage( data/right . jpg )

  ## 2:使用" "进行加法运算

  concat_image=卡通_1卡通_2

  本文将从以下两个方面来讨论如何对自定义类实现“+”法操作:

  (1)python的魔术方法__add__()(2)重载CartoonImage " "进行减法、乘法等运算。对应魔法__sub__(),_mul__(),等等。和加法一样。你只需要根据你想要实现的功能重载即可。

  

目录

  python中的“”操作对应的是后面的_ _ add _()方法,比如自定义一个简单的类Fun。通过实现Fun类的_ _ add _()方法,Fun的对象可以支持“”操作:

  A:级

  def __add__(self,x):

  打印(立即添加!)

  a1=A()

  a2=A()

  a1 a2

  执行上面的代码控制台将显示:“正在添加!”,也就是说“a1 a2”触发了a类的__add__()方法,在__add__()方法内部,我们可以实现任何想要的功能,比如添加两个对象的一些属性,或者打印一些控制信息。

  

1、python的魔法方法__add__()

  

2、对CartoonImage重载“+”

  本节通过一个小例子具体说明如何使用__add__()方法实现更广泛的定制功能。

  首先,我们设计一个名为Cartoonimage的类,它包含一个属性image。我们使用self.image来存储卡通图片。

  CartoonImage的初始化函数如下:

  类carton image():

  def __init__(self,image):

  如果是图片的路径(str类型)请输入以读取图片,

  如果是图片的数据值(ndarray类型),直接初始化

  if isinstance(image,str):

  self . image=imageio . im read(image)[:0:3]

  elif isinstance(image,np.ndarray):

  自我形象=形象

  初始化函数__init__()接收一个图像参数,可以是字符串(代表图片的路径),也可以是数组(代表图片的值)。初始化只需要一个属性self.image,稍后我们将" "这个属性。

  对于__add__()魔法方法来说,它的作用完全取决于你想要什么,而不是狭义的加法运算。比如你想“拼接”两张图片,这种拼接可以通过“”来实现,所以你可以在_ _ add _()中做如下操作:

  def __add__(自己,另一个_漫画):

  “过载”实现图像拼接功能

  concat _ image=NP . concatenate((self . image,another_cartoon.image),axis=1)

  concat _ cartoon=cartonimage(concat _ image)

  返回concat_cartoon

  

2.1 实现CartoonImage类

  

3、测试“+”是否能实现图像拼接

  __add__()方法已经在中实现,现在可以对CartoonImage对象使用“”操作,

  代码如下(文章开头处的代码):

  # 1:创建对象

  cartoon _ 1=cartonimage( data/left . jpg )

  cartoon _ 2=cartonimage( data/right . jpg )

  # 2:使用“”进行添加

  concat_image=卡通_1卡通_2

  现在就能实现一开始的拼接效果了:

  再次指出“concat _ image=cartoon _ 1 cartoon _ 2”调用__add__(self,another_cartoon)函数。

  这就是这篇关于在python中让自定义类使用加号“”的文章。有关使用加号的python自定义类的更多信息,请搜索流行的IT软件开发工作室以前的文章或继续浏览下面的相关文章。希望大家以后多多支持热门IT软件开发工作室!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: