#1.__doc__ class Person(object): ''' 这个类是描述人这个对象的 ''' print(Person.__doc__) #打印类的描述信息
#2. __call__ 对象后面加(),触发执行 class Person(object): ''' 这个类是描述人这个对象的 ''' def __init__(self,name): self.name=name def __call__(self,*args,**kwargs): print("work call",args,kwargs) A=Person("XiaoFang") A(1,2,3,sex='F')
#3.__dict__ 查看类或对象中的所有成员 class Person(object): ''' 这个类是描述人这个对象的 ''' B="XiaoHua" def __init__(self,name): self.name=name def __call__(self,*args,**kwargs): print("work call",args,kwargs) print(Person.__dict__) #打印类中所有成员以字典方式 C=Person("XiaoQian") print(C.__dict__) #只打印实例属性,不打印类属性
#4.__str__ 如果一个类中定义了__str__方法,则在打印对象时默认输出该方法的返回值 class Person(object): ''' 这个类是描述人这个对象的 ''' B="XiaoHua" def __init__(self,name): self.name=name def __str__(self): return "%s"%self.name C=Person("XiaoQian") print(C) #结果为XiaoQian
#5.__getitem__,__setitem__,__delitem__ class Foo(object): def __init__(self): self.data={} def __getitem__(self,key): print('__getitem__',key) return self.data.get(key) def __setitem__(self,key,value): print('__setitem__',key,value) self.data[key]=value def __delitem__(self,key): print('__delitem__',key) obj=Foo() result=obj['k'] #自动触发执行__getitem__ obj['k1']='XiaoPeng' #自动触发执行__setitem__ del obj['k1'] #触发 __delitem__并非真实删除 print(obj['k1'])