您的位置:首页 >资讯 >

天天快消息!Python面向对象编程-反射

2023-04-21 15:51:52    来源:腾讯云


(资料图)

在Python中,反射是一种动态访问和修改对象属性和方法的机制。通过反射,我们可以在运行时获取对象的属性和方法,以及修改它们的值。反射可以帮助我们编写更灵活、更通用、更易维护的代码,例如实现通用的配置文件解析、ORM框架、远程调用等。

Python中的反射主要包括以下几个函数和方法:

dir(obj):返回对象的所有属性和方法的列表。getattr(obj, name[, default]):获取对象的指定属性或方法,如果属性或方法不存在则返回默认值或引发AttributeError异常。setattr(obj, name, value):设置对象的指定属性或方法的值。delattr(obj, name):删除对象的指定属性或方法。

下面是一个简单的反射示例,演示如何使用反射来访问和修改对象的属性和方法:

class MyClass:    x = 1    y = 2        def foo(self):        print("foo")        obj = MyClass()        # 使用dir函数获取对象的属性和方法列表print(dir(obj))# 使用getattr函数获取对象的属性和方法print(getattr(obj, "x"))         # 输出:1print(getattr(obj, "y"))         # 输出:2getattr(obj, "foo")()           # 输出:foo# 使用setattr函数设置对象的属性和方法setattr(obj, "x", 10)setattr(obj, "y", 20)setattr(obj, "foo", lambda self: print("bar"))print(obj.x)                     # 输出:10print(obj.y)                     # 输出:20obj.foo()                        # 输出:bar# 使用delattr函数删除对象的属性和方法delattr(obj, "x")delattr(obj, "y")delattr(obj, "foo")print(dir(obj))                  # 输出:[]

在上面的示例中,我们定义了一个名为MyClass的类,它有两个属性x和y和一个方法foo。然后,我们创建了一个MyClass的对象obj。

首先,我们使用dir函数获取对象的所有属性和方法,并打印输出它们的列表。

接着,我们使用getattr函数获取对象的属性和方法,使用字符串参数指定属性和方法的名称。如果属性或方法不存在,则getattr函数会引发AttributeError异常,可以使用默认值参数避免异常。我们还演示了如何调用对象的方法。

然后,我们使用setattr函数设置对象的属性和方法的值,使用字符串参数指定属性和方法的名称。如果属性或方法不存在,则setattr函数会创建一个新的属性或方法。我们还演示了如何设置对象的方法的值,并使用新的lambda表达式替换原有的方法。

最后,我们使用delattr函数删除对象的属性和方法,使用字符串参数指定属性和方法的名称。如果属性或方法不存在,则delattr函数会引发AttributeError异常。

标签:

相关阅读

十二载助学 梦想的“炭火”生生不息

天天通讯!瓯海供电分局:电力“及时雨” 助水稻喝上“救命水”

【天天聚看点】小赢卡贷网贷7000逾期还不起会被对方起诉吗

8月2日是什么星座呢 8月2日是什么星座

世界观点:沉重的代步车:无证驾驶违规三轮 避险途中侧翻殒命

速讯:黎明觉醒分岔口藏宝图在哪里 分岔口藏宝图位置分享[多图]

五一假期热门城市出炉:多个省会及直辖市在列!出境游同样火爆

每日短讯:厦门旅游复苏:游艇行业备受关注 甚至吸引00后和台胞加入

全球即时:蓝色光标申请“CHATBLUE”商标

怪物猎人崛起凶宝翠岚怎么制作

桌面地下城石头印记怎么样

天天通讯!火焰纹章风花雪月史瓦的领的强盗祸害关卡困难攻略

热点聚焦:《塞尔达传说:王国之泪》新视频 新冒险即将开启

《SE技术预览: 港口镇连续杀人事件》4月24日免费发布

当前看点!32元交个朋友 多剧本调查冒险游戏《志怪者》4月27日上线

焦点短讯!新开单职业传奇手游推荐 十大单职业传奇手游合集

《如龙》夜店女郎试镜最终入围者视频 性感美女吸睛

当前通讯!《王者荣耀》发布预告视频 公孙离机甲新皮肤“记忆之芯”登场!

轻工业数字化水平加快提升

双师科创营结营 腾讯游戏未成年人保护4.0加速发力中

【速看料】金迪克2022年净利降5成 2021上市募12亿中信证券保荐

环球最资讯丨新开变态传奇微变传奇有哪些 新开微变传奇手游推荐top10

隔离区丧尸末日生存用枪械瞄准镜需要注意什么

《王者荣耀》公孙离机甲新皮肤“记忆之芯”爆料视频

上线65535级变态传奇手游推荐 超级变态传奇手游排行榜top10

数字化科创助力青少年放飞梦想,腾讯游戏把科创教育玩出新花样

报道:手游FPS游戏《全境封锁:曙光》将于今夏开启测试

环球信息:《怪物猎人:崛起》天廻龙的重壳怎么获得

《怪物猎人:崛起》天廻龙的厚鳞怎么获得

全球即时:风投公司Bitkraft招募前拳头发行总裁 扩展亚洲业务

世界热议:180沉默传奇手游哪个火 十大180沉默传奇手游版本推荐

环球报道:种田新游《归园田居》Steam页面上线 发售日期待定

【全球时快讯】《街霸6》第一弹DLC四名角色公布 体验版今日上线

外媒爆料:拳头将资助巴西赛区亚军与季军一同前往伦敦集训

天天快看:《怪物猎人:崛起》天廻龙的韧尾怎么获得

世界速递!即使战略《钢铁战队:入侵》Steam页面上线 支持简中

世界要闻:2K移除《小缇娜的奇幻之地》D加密 原因未知

一刀999999变态传奇有哪些 超级变态传奇手游版本合集

要闻:隔离区丧尸末日生存搜刮什么道具比较重要

【天天播资讯】《霓虹序列》发售价仅48元,国内二次元已经开始盯上了动作肉鸽

上海期货交易所4月20日镍仓单下跌

华为宣布成功实现MetaERP研发和替换,重新定义企业核心商业系统

广东队最新消息广东体育不播G2,最新名单出炉,任骏飞被放弃用

天天新消息丨《赛博朋克2077》PC热修复上线 可能会影响Mod使用

全球热文:《怪物猎人:崛起》怪异克服天廻龙掉什么素材

当前关注:《怪物猎人:崛起》岚龙掉什么素材

今日快看!全军覆没!奥恰洛夫狂救11个赛点仍落败!无缘战马龙争四强

每日关注!《全境封锁:中心地带》开场CG动画

全球快报:mtf是什么意思中文_mtf是什么意思

澳媒:枪支暴力事件激增使美国人权状况恶化 美政府放任危机蔓延

环球快看点丨《全境封锁2》第五年更新计划 体验新模式“深潜”

环球今日讯!ESR(01821)连续18日回购,累计回购646.70万股

全球视点!操作小狗引导失心人类《人性》5月16日发售

《街头霸王6》体验版上线PS商店 PC版26日推出

【环球时快讯】如何正确安装角磨机(如何正确安装角磨机切片)

焦点速递!《生化危机2、3》Steam版光追现已重新加回来

两部门印发安全指南 剧本娱乐经营场所应设置火灾自动报警系统等

动态焦点:偷小区配电房的铜板挣钱 杭州一包工头被判了9个月

【环球聚看点】RPG要素来咯《街头霸王6》环球游历模式预告

全球热点!外媒确认《死亡岛2》采用Denuvo防篡改技术

【环球快播报】dnf国服奶弓上线时间介绍

今亮点!索尼收购Firewalk为其开发多人3A游戏新作

疯狂梗传爱如火攻略

每日简讯:法国浮世娱乐收购英国游戏开发商Dovetail Games

环球头条:dnf奶弓技能属性效果分析

当前热议!2023“澳门图书馆周”推广日周六开锣

《崩坏:星穹铁道》冰系角色阵容搭配

每日热点:《暗黑破坏神4》压力测试:5月13日3点至15日3点

今日播报!边境战斗侦查与反侦察攻略分享

焦点播报:《星球大战绝地:幸存者》各平台预载具体时间公布

每日热门:《不朽者传奇》配置公开 最低RTX 2080 Super

观焦点:女子酒驾被查自称是接吻造成_民警只好现场普法教育

全球热头条丨燃动中原丨中集·陕汽郑州“三好发展中心”正式启动!

图标隐藏软件_图标隐藏

重点聚焦!26万人,27年后,凌晨刷爆《灌篮高手》仅仅是“回忆杀”吗?

环球播报:大错特错不要来侮辱我的美我不是你的(大错特错不要来侮辱我的美)

蓝营由谁挂帅出征2024?最新网络民调显示“他”最受欢迎

世界快看:成都多处“拆绿还耕”:网红绿道边种上10万亩农作物

当前热点-吉林省一季度GDP增长8.2% 规上工业增加值增长7.6%

银行工作人员提醒:最好在家里备上1万元现金,关键时刻用处大!

2023琼海五一劳动节旅游景区推荐

你我贷逾期11天延迟还款影响征信吗

每日看点!戴维斯:我喜欢我的投篮,很多的投篮都很接近

天天观天下!2022年下半年睢宁县教资认定时间安排

每日简讯:主销车型63万元 高合HiPhi Z交付量超1,000台

世界观焦点:重庆2023年初级护师考试成绩查询时间

世界今亮点!怀孕10天能测出来吗用试纸_怀孕10天能测出来吗

每日观点:巨头宣布:4000人大裁员!项目经理:一觉醒来发现工作丢了

环球快报:Epic喜加一:《永不孤单》和《深海超越》免费领

Fami通新一周销量榜 《洛克人EXE合集》登顶

焦点要闻:打造皮卡新生活,江铃大道拓展更多应用场景

blew翻译(blew)

天天热门:提前看!23年11月frm报名时间已定!

天天快资讯:政府扶持的农业项目协议 政府扶持的农业项目

【独家】开源证券给予振德医疗买入评级 公司首次覆盖报告:渠道品牌建设+产品产能升级助...

环球微资讯!超62万台!PS5成美国3月份最畅销的游戏主机

中国新能源汽车制造海外竞争力提高 成为智能制造新名片

今天是SIE《战神4》游戏发售5周年

终南山作者_作者是王维-每日焦点

华安小坑新村:乡村振兴 飘出“致富曲”

天天热文:qq飞车手游童话春桃夭夭多少钱

滚动:昆山阳澄湖科技园:“敢”为先 “创”为本 全力推动产业创新高质量发展

环球动态:任天堂独立游戏直面会 Indie World 日服游戏情报汇总

世界快播:梦幻西游手游怎么退出跨服擂台

潮玩国度(北京)科技有限公司确认参展 INDIE GAME 展区火热招商中!

株洲市天元区水利局原局长范宏平接受天元区监委监察调查

全球微资讯!《暗黑破坏神4》野蛮人介绍视频公布 展示战斗场景

咖啡心语第二章40075公里成就怎么解锁