python接口自动化学习七之反射详解

反射:通过字符串去操作对象的属性和方法,是字符串形式.

可进行反射操作的对象:实例化对象、类、其他模块、本模块

getattr()    根据字符串的形式去对象中寻找东西

hasattr()   根据字符串的形式去某个对象中判断东西是否存在

setattr()  根据字符串的形式去某个对象中设置东西

delattr()   根据字符串的形式去某个对象中删除东西

假设一个文件为login.py,代码如下

def index():
	print('欢迎访问XX网站首页')

def login():
	print('登陆成功')

def logout():
	print('退出系统')

str1='我是str1'

class Person(object):
	def __init__(self):
		pass
	def info(self):
		print('我是Person类的info方法')

对其他模块、实例化对象进行反射操作

import login
#通过login模块找到logout函数,并且调用它
f=getattr(login,'logout')  #即对其它模块进行反射操作
f()


#如何找到Person类中的方法并且调用它
obj=login.Person()
if hasattr(obj,'info'):#即对实例化对象进行反射操作
	f=getattr(obj,'info')
	f()
else:
	print('sorry')

#根据字符串形式往对象中添加exit属性
f=setattr(obj,'exit','this is exit metho
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值