python反射
来源:互联网 发布:男士护肤 知乎 编辑:程序博客网 时间:2024/06/05 19:19
反射作用
- 反射是以字符串的方式执行方法
- 以字符串的形式设置属性
反射常用函数 hasattr,getattr,setattr,delattr
示例1 初识函数
class Dog(object): def __init__(self,name): self.name = name self.color = "red" def say(self): print "my name is %s" %self.name def eat(self): print "%s eating" %self.name d1 = Dog("qiaoqiao")has_say = hasattr(d1,"say")print type(has_say)get_say = getattr(d1,"say","ddd")get_say()setattr(d1,"name","benben")setattr(d1,"color","blue")print d1.say()print d1.colordelattr(d1,"color")
hasatrt hasattr(object, name) -> bool 用于判断对象有没有这个方法,第一个参数是对象,第二个为字符串,返回值为布尔类型。
getattr (object, name[, default]) -> value 用于执行对象的方法,getattr(x, ‘y’) 等于 x.y。如果没有这个方法,会报异常
setattr(object, name, value) 设置对象的属性,setattr(x, ‘y’, v) 等于 x.y = v''
del x.y”
delattr (object, name) 将对象的属性删除。delattr(x, 'y') 等于
示例二: 根据用户输入执行相应的方法
class Dog(object): def __init__(self,name): self.name = name self.color = "red" def say(self): print "my name is %s" %self.name def eat(self): print "%s eating" %self.named1 = Dog("xiaohei")while True: in_func = raw_input("The dog to do:") if hasattr(d1,in_func): func = getattr(d1,in_func) func() else: print "It can't do it!!"
示例二:动态导入函数
#cat fanshe_test.pydef hello(): print "hellow "#cat 反射.pyfanshe_test = __import__("fanshe_test")if hasattr(fanshe_test,"hello"): func = getattr(fanshe_test,"hello") func()
有啥不足之处评论提出,觉得还可以的话,可以点赞关注呦!!!
阅读全文
0 0
- python 反射
- Python反射
- python 反射
- Python:反射
- python反射
- python反射
- python反射
- python 反射
- python反射
- python反射
- python day14 python 反射
- [Python]python反射
- Python 反射指南
- python的反射机制
- Python反射指南
- python中的反射
- python中的反射
- python反射机制
- ios-GCD信号量
- Android超酷的加载效果
- Win10系统如何在右键菜单添加"管理员取得所有权
- OPENMV结合PIX飞控实现定点 循迹
- 进程简述
- python反射
- Class文件中的常量池详解(上)
- Django的基本操作流程总结
- java反射
- 猜数字游戏,水仙花数
- python slice的几个小点总结
- 任务调度SpringTask
- JAVA SE — Day 15
- 架构师之路:Java从零到企业级电商项目实战服务端