首页 > 代码库 > python基础学习日志day7-类的反射
python基础学习日志day7-类的反射
1)python中的反射功能是由以下四个内置函数提供:hasattr、getattr、setattr、delattr,
改四个函数分别用于对对象内部执行:检查是否含有某成员、获取成员、设置成员、删除成员。
# -*- coding:utf-8 -*- __author__ = ‘shisanjun‘ class Foo(object): def __init__(self): self.name="s" def func(self): return ‘func‘ obj=Foo() #检查是否含有成员 print("----是否有成员-----") print(hasattr(obj,"name")) print(hasattr(obj,"func")) #获取成员 print("----获取成员-----") print(getattr(obj,"name")) print(getattr(obj,"func")()) #getattr(obj,"func")实例的func的内存地址 #设置成员 print("----设置成员-----") def show(num): return num+1 setattr(obj,"age",18) setattr(obj,"show",3) print(getattr(obj,"age")) print(getattr(obj,"show")) delattr(obj,"age") delattr(obj,‘show‘) print("----是否有成员-----") print(hasattr(obj,"age")) print(hasattr(obj,"show")) """ ----是否有成员----- True True ----获取成员----- s func ----设置成员----- 18 3 ----是否有成员----- False False """
2)其他方法访问类的成员
class Foo(object): def __init__(self): self.name = ‘alex‘ def func(self): return ‘func‘ # 不允许使用 obj.name obj = Foo() print obj.__dict__[‘name‘]
python基础学习日志day7-类的反射
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。