Magic Method

是什么
它是python面向对象的一整套方法 , 从对象的建立到属性的访问 , 到对运算符的支持 , 对特殊语法的支持
形式
方法名前后后两个_ , 如 : def __init__(self):
2.2 对象的创建与初始化
对象实例化的过程
创建类的对象 : def __new__(cls)
初始化对象 : def __init__(self)
new方法在调用init方法之前被调用 , 返回一个类的初始对象 , 可以进行重写 , 但是要返回对象 , cls表示当前类
回收对象
def __del__() : 实际并不会调用这个方法进行回收 , python的回收机制会自动调用此方法进行回收
实例
# 首先调用new方法 , 用于返回自身的一个对象 , 然后将对象交给init方法
class Program(object):

def __new__(cls, *args, **kwargs):
print('call_new_method')
print(args)
return super(Program, cls).__new__(http://www.my516.com)

def __init__(self, name, age, language):
print('call_init_method')
self.name = name
self.age = age
self.language = language


if __name__ == '__main__':
program = Program('John', 22, 'python')
print(program.__dict__)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
对于*args与**kwargs参数的含义详见*args与**kwargs
————————————————

猜你喜欢

转载自www.cnblogs.com/liyanyan665/p/11408547.html