4.python中常用的魔法方法(长期更新)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了4.python中常用的魔法方法(长期更新)相关的知识,希望对你有一定的参考价值。

python中很多设定与c都不一样,比如符号重载,类中对象自身变量的初始化等等,都需要使用魔法方法来进行设定,而不是直接和C++一样直接赋值就可以。

而python中魔法方法的特征就是有双下划线来包围在魔法方法名两边,如__str__,__init__等。

一、init方法

init方法是在对象的初始化时候使用的,不同于C++中的对象中直接定义,python对象中的初始化需要在这个魔法方法中来定义。

以时间类为例:

1 class Time(object):
2     """docstring for Time"""
3     def __init__(self, hour = 0,minute = 0,second = 0): #这里括号中因为添加了默认值,所以每个都写了,如果不设定默认值,只要个self就可以
4         super(Time, self).__init__()6         self.hour = hour
7         self.minute = minute
8         self.second  = second

 

二、str方法

str方法控制的是使用print函数打印这个类的对象的时候所表现的形式

同样以时间类为例:

    def __str__(self):
        return %.2d:%.2d:%.2d%(self.hour,self.minute,self.second)

这样的话:

1 time = Time(9,8,15)
2 print(time)
3 
4 输出09:08:15

 

三、操作符重载

以加法操作符重载为例子

1 def __add__(self,other):
2     seconds = self.time_to_int()+other.time_to_int()
3     return int_to_time(seconds)

和C中差不多只不过格式什么的不一样

 

以上是关于4.python中常用的魔法方法(长期更新)的主要内容,如果未能解决你的问题,请参考以下文章

python进阶之类常用魔法方法和魔法属性

Python 常用魔法方法(下)

长期更新Ubuntu常用命令备忘录

Python类的常用魔法方法

Python类的常用魔法方法

Python类的常用魔法方法