码迷,mamicode.com
首页 > 其他好文 > 详细

反射getattr,hasattr,setattr,delattr

时间:2017-09-29 23:08:04      阅读:282      评论:0      收藏:0      [点我收藏+]

标签:属性   sel   ##   one   foo   lambda   映射   ini   设置   

通过字符串映射或修改程序运行时的状态、属性、方法, 有以下4个方法

getattr(object, name_str, default=None) 根据字符串name_str去获取obj对象里的方法内存地址
hasattr(object,name_str) 判断一个对象里是否有对应的name_str字符串的方法
setattr(obj, y, v)这个相当于obj.y=v
delattr(x, y)

技术分享

class Foo(object):
 
    def __init__(self):
        self.name = wupeiqi
 
    def func(self):
        return func
 
obj = Foo()
 
# #### 检查是否含有成员 ####
hasattr(obj, name)
hasattr(obj, func)
 
# #### 获取成员 ####
getattr(obj, name)
getattr(obj, func)
 
# #### 设置成员 ####
setattr(obj, age, 18)
setattr(obj, show, lambda num: num + 1)
 
# #### 删除成员 ####
delattr(obj, name)
delattr(obj, func)

反射代码示例

setattr

技术分享

技术分享

技术分享

 技术分享

技术分享

 

反射getattr,hasattr,setattr,delattr

标签:属性   sel   ##   one   foo   lambda   映射   ini   设置   

原文地址:http://www.cnblogs.com/itfat/p/7612665.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!