【每天1分钟】PYTHON基础之面向对象(类的特殊方法)

【每天1分钟】PYTHON基础之面向对象(类的特殊方法)

1. 构造序列

__len__(self)
__getitem__(self, key)
__setitem__(self, key, value)
__delitem__(self, key)

>>> class MySeq:
	def __init__(self):
		self.lseq = ["I","II","III","IV"]
	def __len__(self):
		return len(self.lseq)
	def __getitem__(self, key):
		if 0 <= key < 4:
			return self.lseq[key]

		
>>> m = MySeq()
>>> for i in range(4):
	print(m[i])

	
I
II
III
IV
>>> 

2. 构造iter

__iter__(self)
__next__(self)

>>> class MyIter:
	def __init__(self,start,end):
		self.count = start
		self.end = end
	def __iter__(self):
		return self
	def __next__(self):
		if self.count < self.end:
			r = self.count
			self.count += 1
			return r
		else:
			raise StopIteration

		
>>> for i in MyIter(1,10):
	print(i)

	
1
2
3
4
5
6
7
8
9
>>> 

3. 构造可比较类

__lt__()
__le__()
__gt__()
__ge__()
__eq__()
__ne__()

>>> class Point:
	def __init__(self,x,y):
		self.x = x
		self.y = y
	def __lt__(self,oth):
		return self.x < oth.x
	def __gt__(self,oth):
		return self.y > oth.y

	
>>> pa = Point(0,1)
>>> pb = Point(1,0)
>>> print(pa < pb)
True
>>> print(pa > pb)
True
>>> 

4. 构造可运算类

__add__()
__sub__()
__mul__()
__div__()

>>> class Point:
	def __init__(self,x,y):
		self.x = x
		self.y = y
	def __add__(self,oth):
		return Point(self.x + oth.x , self.y + oth.y)
	def info(self):
		print(self.x,self.y)

		
>>> pa = Point(1,2)
>>> pb = Point(3,4)
>>> pc = pa + pb
>>> pc.info()
4 6
>>> 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值