Python 教程之运算符(6)—— 运算符重载

运算符重载意味着赋予超出其预定义的操作含义的扩展含义。例如运算符 + 用于添加两个整数以及连接两个字符串和合并两个列表。这是可以实现的,因为 '+' 运算符被 int 类和 str 类重载。您可能已经注意到,相同的内置运算符或函数对不同类的对象显示不同的行为,这称为运算符重载

# Python 程序显示 + 运算符用于不同目的。

print(1 + 2)

# 连接两个字符串
print("Geeks"+"For")

# Product two numbers
print(3 * 4)

# 重复字符串
print("Geeks"*4)

输出

3
GeeksFor
12
GeeksGeeksGeeksGeeks

输出  

3
GeeksFor
12
GeeksGeeksGeeksGeeks

如何重载Python中的运算符?  
考虑到我们有两个对象,它们是一个类的物理表示(用户定义的数据类型),我们必须使用二进制“+”运算符添加两个对象,它会引发错误,因为编译器不知道如何添加两个对象. 因此,我们为运算符定义了一个方法,该过程称为运算符重载。我们可以重载所有现有的运算符,但不能创建新的运算符。为了执行运算符重载,Python 提供了一些特殊函数或魔术函数,当它与特定运算符关联时会自动调用这些函数。例如,当我们使用 + 运算符时,会自动调用魔术方法 add,其中定义了 + 运算符的操作。
在 Python 中重载二进制 + 运算符:  
当我们在用户定义的数据类型上使用运算符时,会自动调用与该运算符关联的特殊函数或魔术函数。改变运算符的行为就像改变方法或函数的行为一样简单。您在类中定义方法,运算符根据方法中定义的行为工作。当我们使用 + 运算符时,会自动调用魔术方法 add ,其中定义了 + 运算符的操作。通过改变这个魔法方法的代码,我们可以给 + 运算符赋予额外的意义。 
代码 1:

# Python 程序说明如何重载二元 + 运算符

class A:
	def __init__(self, a):
		self.a = a

	# adding two objects
	def __add__(self, o):
		re
  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值