Python-运算符重载

171 阅读1分钟

简介

  • 运算符重载让类拦截常规的Python运算.
  • 类可重载所有的Python表达式运算符
  • 类也可以重载打印,函数调用,属性点号运算等内置运算.
  • 重载使类实例的行为像内置函数.
  • 重载使通过特殊名称的类方法实现的.

构造函数和表达式:init__和__sub

class Number:
	def __init__(self,start):
		self.data=start
	def __sub__(self,other):
		return Number(self.data - other)

>>> from number import Number
>>> x=Number(5)
>>> y=x-2
>>> y.data
3
>>> 

索引和分片:getitem__和__setitem

>>> class Indexer:
	def __getitem__(self,index):
		return index**2

	
>>> X=Indexer()
>>> X[2]
4
>>> for i in range(5):
	print(X[i],end='')

	
014916
>>>