温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

python面向对象编程中的魔法方法是什么

发布时间:2021-12-04 09:22:15 来源:亿速云 阅读:113 作者:柒染 栏目:大数据

python面向对象编程中的魔法方法是什么,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

今天学习python的面向对象编程-魔法方法。

新建一个python文件命名为py3_oop5.py,在这个文件中进行操作代码编写:

#面向对象编程#魔法方法
#打印1+2的值print(1+2)#3#这里实际是调用了#int的魔法方法__add__()print(int.__add__(1,2))#打印字符串连接print('a'+'b')##这里实际是调用了#str的魔法方法__add__()print(str.__add__('a','b'))#继续看Employee类class Employee:  raise_amount = 1.04#定义列变量  def __init__(self,first,last,pay):    self.first = first    self.last = last    self.email = first + '.' + last +'@email.com'    self.pay = pay
 def fullname(self):    return '{} {}'.format(self.first,self.last)
 def apply_raise(self):    self.pay = int(self.pay * self.raise_amount)  #如下魔法方法是  #实际重写了内置函数repr()和str()  #后面学到再说  #repr一般用来调试,记录日志使用  #面向开发者  def __repr__(self):    return 'Employee {} {} {}'.format(self.first,self.last,self.pay)  #str一般用来显示信息  #面向终端用户  def __str__(self):    return '{}-{}'.format(self.fullname(),self.email)  #重写__add__  #计算工资加和  def __add__(self,other):    return self.pay + other.pay    #重写__len__  #计算全名长度  def __len__(self):    return len(self.fullname())
emp_1 = Employee('T','Bag',50000)emp_2 = Employee('Mc','User',60000)#打印对象,默认调用#__str__()print(emp_1.__str__())#T Bag-T.Bag@email.comprint(emp_1.__repr__())#Employee T Bag 50000print(emp_1 + emp_2)#110000print(len(emp_2))#7

运行结果:

33ababT Bag-T.Bag@email.comEmployee T Bag 500001100007

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注亿速云行业资讯频道,感谢您对亿速云的支持。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI