首页 > 编程语言 > 详细

Python 中的反射

时间:2019-04-04 13:44:42      阅读:91      评论:0      收藏:0      [点我收藏+]

1.什么是反射

解释型的语言,在程序被加载到内存运行的时候,可以通过反射的方式获取对象的类型、属性等信息。

Python 的反射机制比较简单,共4个关键字:getattr, setattr, hasattr, delattr。

 

2.具有反射能力的内置函数

1)getattr

# 定义一个class
class Student:
    def showName(self, name):
        print(name)

# 实例化对象
stu = Student()

# 语法:getattr(boject, name [,default])
# object 表示对象
# name 表示要对象的属性
# default 可选,作为默认函数返回。如果没找到属性,并且不提供此参数,将触发AttibuteError
# 如果stu 存在showName 这个属性,就赋值给fun1, 否则将lambda 匿名函数赋值给fun1
fun1 =  getattr(stu, showName, lambda x: print(x))
    fun1(Tom)

2)setattr

# 为对象覆盖或者添加showAge 属性
setattr(stu, ‘showAge‘, lambda x: print(x))
stu.showAge(15)

3)hasattr

# hasattr 返回bool 值
if not hasattr(stu, ‘showAge‘):
    setattr(stu, ‘showAge‘, lambda x: print(x))
stu.showAge(16)

4)delattr

#用于删除对象的属性,作用和setattr 相反,要删除的属性必须存在,否则触发AttributError
delattr(a, ‘name‘)

  

参考:

http://www.9xkd.com/user/plan-view.html?id=2298271364

Python 中的反射

原文:https://www.cnblogs.com/mojo/p/10654294.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!