python特殊成员函数

Posted cecelia

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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)

 

以上是关于python特殊成员函数的主要内容,如果未能解决你的问题,请参考以下文章

Python全栈--9.1--面向对象进阶-super 类对象成员--类属性- 私有属性 查找源码类对象步骤 类特殊成员 isinstance issubclass 异常处理

python 类的常见的特殊成员

面向对象之类的内建函数

Python学习:17.Python面向对象(属性(特性),成员修饰符,类的特殊成员)

Python_day8_面向对象(多态成员修饰符类中特殊方法对象边缘知识)异常处理之篇

类的特殊成员方法