python面向对象编程中的魔法方法是什么,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。
创新互联公司公司2013年成立,先为阳朔等服务建站,阳朔等地企业,进行企业商务咨询服务。为阳朔企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。
今天学习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.com
print(emp_1.__repr__())#Employee T Bag 50000
print(emp_1 + emp_2)#110000
print(len(emp_2))#7
运行结果:
33ababT Bag-T.Bag@email.comEmployee T Bag 500001100007
看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注创新互联行业资讯频道,感谢您对创新互联的支持。