python特殊成员函数

1.__init__():构造函数

2.__del__():析构函数

3.print(__doc__):打印描述信息

4.print(Dog.__module__):类来自的模块

5.print(d1.__class__) :对象属于哪个类

6.__call__(self, *args, **kwargs):对象(),()带位置参数或关键字参数

def __call__(self, *args, **kwargs):
        print(self.name,args,kwargs)

d1=Dog('lele')
d1(1,2,3,4,month=13,sex='mu')

7.__str__:以规定的格式打印 对象

print(d1)

<__main__.Dog object at 0x0000024D9871EF28>

定义__str__后:

    def __str__(self):    #以规定的格式打印 对象
        return "<obj:%s>"%self.name
print(d1)

<obj:lele>

8.__getitem__,__setitem__,__delitem__:用于索引操作,如字典(Django中不想用户删除某些键,将其设为对象,然后进行索引操作)

 1 class C(object):
 2     def __init__(self):
 3         self.data={}
 4 
 5     def __getitem__(self, key):
 6         self.data.get(key)
 7         print('__getitem__',key)
 8 
 9     def __setitem__(self, key, value):
10        self.data[key]=value
11        print('__setitem__', key, value)
12 
13     def __delitem__(self, key):
14         self.data.pop(key)
15         print('__delitem__', key)
16 
17 obj = C()
18 
19 obj['k2'] = 'alex'  # 自动触发执行 __setitem__
20 print(obj.data)
21 result = obj['k2']  # 自动触发执行 __getitem__
22 print(obj.data)
23 del obj['k2']   # 自动触发执行 __getitem__
24 print(obj.data)

 

posted @ 2018-02-04 20:12  cecelia  阅读(707)  评论(0编辑  收藏  举报