Python 类的运算

类的运算

运算的理解

在这里插入图片描述

算数运算符的重载

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

比较运算的重载

在这里插入图片描述

成员运算的重载

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

其他运算的重载

在这里插入图片描述
在这里插入图片描述在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

小结

在这里插入图片描述

python 类的多态

多态的理解

在这里插入图片描述

参数类型的多态

在这里插入图片描述
技巧:用python内部支持多种参数类型的天然保留方法的重载,如__id__()

参数形式的多态

在这里插入图片描述
技巧:通过默认参数的形式去实现

小结

在这里插入图片描述

一个实例(图像之间的数据运算)

# 编写代码重载加减乘除四则运算,实现图像的加减乘除
# 原理是将图像每一个像素点的rgb三个值作对应的加减乘除运算
from PIL import Image
import numpy as np

class ImageObject:
	def __init__(self, path = ''):
		self.path = path
		try:
			self.data = np.array(Image.open(path)) #调用numpy库的array函数生成一个三维数组
		except:
			self.data = None
		
	def __add__(self, other):
		image = ImageObject()
		try:
			image.data = np.mod(self.data + other.data, 255) #numpy数据库取模函数
		except:
			image.data = self.data
		return image
	
	def __sub__(self, other):
		image = ImageObject()
		try:
			image.data = np.mod(self.data - other.data, 255) 
		except:
			image.data = self.data
		return image
		
	def __mul__(self, factor):
		image = ImageObject()
		try:
			image.data = np.mod(self.data * factor, 255) 
		except:
			image.data = self.data
		return image

	def __truediv__(self, factor):
		image = ImageObject()
		try:
			image.data = np.mod(self.data // factor, 255) 
		except:
			image.data = self.data
		return image

	def saveImage(self, path):
		try:
			im = Image.fromarray(self.data)
			im.save(path)
			return True
		except:
			return False

a = ImageObject("***")
b = ImageObject("***")
(a + b).saveImage("path****")
(a - b).saveImage("path****")
(a * b).saveImage("path****")
(a / b).saveImage("path****")	

以上所有内容来自嵩天老师《python面向对象精讲》,为学习截图与随堂笔记整理,方便日后复习使用

  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值