白云岛资源网 Design By www.pvray.com
反射
什么是反射?
- 反射主要是指程序可以访问、检测和修改它本身状态或行为的一种能力(自省)
面向对象中的反射
- 通过字符串的形式来操作(获取、检查、增加、删除)对象中的成员
- python中的一切事物都是对象(都可以使用反射)
四个可以实现自省的函数:
- getattr() 获取属性
- hasattr() 判断对象中是或否拥有特定的值
- setattr() 设置属性
- delattr(obj,'gender') 删除属性
class Info: def __init__(self,name,age,gender): self.name = name self.age = age self.gender = gender def show(self): return '%s - %s' %(self.name,self.age) obj = Info('alex','20','男') b = 'name' print(obj.__dict__[b]) print(obj.__dict__['name']) #getattr() inp = input('请输入想要获取的内容:') v = getattr(obj,inp) print(v) func = getattr(obj,'show') v = func() print(v) #hasattr() print(hasattr(obj,'name')) #setattr() setattr(obj,'k1','v1') #delattr(obj,'gender') obj.gender # 此时报错,Info类中的gender对象已被删除
操作类对象:
class Info(object): staticField = "Hello World!" def __init__(self): self.name = 'mike' def func(self): return 'func' @staticmethod def bar(): return 'bar' print(getattr(Info, 'staticField')) print(getattr(Info, 'func')) # 返回函数的内存地址 print(getattr(Info, 'bar')) # 返回函数的内存地址
单例模式
什么是单例模式?
- 单例模式(Singleton Pattern)是一种常用的软件设计模式,该模式的主要目的是确保某一个类只有一个实例存在。
- 当你希望在整个系统中,某个类只能出现一个实例时,单例对象就能派上用场。
- 单例,永远使用同一份实例(对象)。单例模式能够有效地节约内存资源。
实现单例模式:
class Info: __v = None @classmethod def get_instance(cls): if cls.__v: return cls.__v else: cls.__v = Info() return cls.__v obj1 = Info.get_instance() print(obj1) obj2 = Info.get_instance() print(obj2)
以上所述是小编给大家介绍的Python反射 & 单例模式详解整合,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!
白云岛资源网 Design By www.pvray.com
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
白云岛资源网 Design By www.pvray.com
暂无评论...
RTX 5090要首发 性能要翻倍!三星展示GDDR7显存
三星在GTC上展示了专为下一代游戏GPU设计的GDDR7内存。
首次推出的GDDR7内存模块密度为16GB,每个模块容量为2GB。其速度预设为32 Gbps(PAM3),但也可以降至28 Gbps,以提高产量和初始阶段的整体性能和成本效益。
据三星表示,GDDR7内存的能效将提高20%,同时工作电压仅为1.1V,低于标准的1.2V。通过采用更新的封装材料和优化的电路设计,使得在高速运行时的发热量降低,GDDR7的热阻比GDDR6降低了70%。