Python反射机制学习笔记

一、定义

      是一种基于字符串的事件驱动。

     可通过字符串的形式,导入模块;也通过字符串的形式,去模块中寻找指定函数,并调用执行;也可通过字符串的形式去对象(模块)中操作(查找/获取/删除/添加)成员。

二、内置函数(builtins.py)

1)setattr(object, name, value)  

给指定的对象添加属性以及属性值。

object是一个对 象, name是一个字符串,value是name对应的值。

2)hasattr(object, name)  

判断该对象是否有指定名字的属性或方法,返回值是bool类型。

hasattr是通过调用getattr(ojbect, name)是否抛出异常来实现的。

3)getattr(object, name, default)

获取对象指定名称的属性或方法,返回值是str类型。

object -- 对象。name -- 字符串,对象属性。default -- 默认返回值,如果不提供该参数,在没有对应属性时,将触发 AttributeError。

4)delattr(object, name)   

 删除对象指定名称的属性或方法值,无返回值。

Object是 一个对象,name是一个字符串且name参数必须是对象属 性名之一。

三、面向类反射

 【创建一个类,包含类属性,init方法,类方法,静态方法,一般方法。然后使用该类进行Python反射机制的练习

1、类属性-可使用hasattr、setattr、getattr、delattr

 执行结果:

 

2、类方法-可使用hasattr、getattr、delattr

执行结果:

 

 

3、静态方法-可使用hasattr、getattr、delattr

执行结果:

 

 

四、面向对象反射

1、对象属性-可使用getattr、hasattr、setattr、delattr

执行结果:

 

 

2、对象方法-可使用hasattr、getattr

执行结果:

 

 

五、面向模块反射

导入需要使用的模块后可往该模块下添加属性值及使用该模块下已有的属性的值和方法(或函数)

 

通过【__import__('gao')】可将gao.py导入到其他模块下

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值