视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
python类中的特殊成员方法介绍
2020-11-27 14:14:13 责编:小采
文档
 __doc__ 查看尖的描述信息

__module__表示当前操作的对象所在的模块

__class__表示当前操作的对象所属的类

__init__构造方法 通过类创建对象自动执行

__del__析构方法,当前对象在内存中被释放自动斩妖执行

__call__对象后面加括号触发执行

__dict__查看类或对象中的成员

__str__如果一个类中定义了此方法,那么打印此类对象时,输出此方法的返回值

__getitem__当类中定义了一个字典的属性成员,可以获取

__setitem__设置修改类中字典的数据

__delitem__删除 类中字典的数据

__metalass__其用来表示该类由 谁 来实例化创建

__new__触发 __init__创建实例

 1 #!usr/bin/env python 2 
 #-*-coding:utf-8-*- 3 # Author calmyan 4 5 from lib.ss import a 6 #示例类 dog 7 class doges(object): 8 
 """类的描述信息""" 9 def __init__(self,name,food):10 self.name=name11 self.food=food12 
 self.data={}#定义一个类的字典13 def __call__(self, *args, **kwargs):#对象后面加括号解执行14 
 print(*args)15 def __str__(self):#默认
输出返回值16 return self.name17 def __getitem__(self):#可以获取类的的字典18 return self.data19 def __setitem__(self, key, value):#可以设置类的的字典20 self.data[key]=value21 def __delitem__(self, key):#可以删除类的字典的内容22 del self.data[key]23 dog=doges('xxx','iii')24 print(dog.__doc__)25 b=a()26 print(b.__module__)#操作的对象的那个模块27 print(dog.__class__) #当前操作的对象的类是什么28 dog('111')#29 print(doges.__dict__)#查看类或对象的成员 类只打印类的成员不打印对象的成员30 print(dog.__dict__) #查看类或对象的成员 对象只打印对象的成员不打印类的成员31 print(dog)#打印 __str__的返回值32 print(dog.__str__())#打印返回值33 34 dog['1']=1000#触发.__setitem__()35 dog['2']=1000 #触发.__setitem__()36 print(dog.__getitem__())37 print(dog.__delitem__('1'))#删除类中字典38 print(dog.__getitem__())39 40 #设置类的特殊方法41 def func(self):42 print('hello word%s'%self.name)43 print()44 45 def __init__(self,name,age):46 self.name=name47 self.age=age48 ##type参数 1:类名 2.类的基类 3.类的成员,字典格式49 CAT=type('CAT',(object,),{'func':func,'__init__':__init__})50 51 cat=CAT('喵喵',3)52 cat.func()53 print(cat.name,cat.age)View Code

反射:通过字符串 调用对象中的方法

 1 #!usr/bin/env python 2 #-*-coding:utf-8-*- 3 # Author calmyan 4 #反射 5 6 
 #定义 一个新方法 7 def bulk(self): 8 print("%s is talking...."%self.name) 9 10 
 class DOG(object):11 def __init__(self,name):12 self.name=name13 
 def eat(self,food):14 print('%s is eating %s'%(self.name,food))15 16 d=DOG('一只狗')17 18 
 stres=input('方法:').strip()#手动输入方法19 20 if hasattr(d,stres):#通过字符串反射对象中的方法,是否存在21 
 func=getattr(d,stres)#调用此方法22 func("骨头")#执行方法23 else:24 
 setattr(d,stres,bulk)#对象增加一个方法 返回一个内存地址25 getattr(d,stres)(d)#调用此方法 增加的26 
 #d.talk(d)27 #属性修改28 stres1=input('属性:').strip()#手动输入属性29 if hasattr(d,stres1):#如果已经存在30 
 attr=getattr(d,stres1)#调用31 a=input('重新赋值:').strip()32 setattr(d,stres1,a)33 
 print(getattr(d,stres1))34 else:35 a=input('新赋值:').strip()36 
 setattr(d,stres1,a)#对象增加一个属性 ,赋值 返回这个属性的值37 print(stres1)38 
 print(getattr(d,stres1))39 40 print(d.__dict__)41 dela=input('删除属性:').strip()42 43 
 if hasattr(d,dela):#如果已经存在44 delattr(d,dela)#进行删除45 print('删除成功')46 47 
 print(d.__dict__)
View Code

下载本文
显示全文
专题