python基础学习日志day7-类的反射
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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-类的反射的主要内容,如果未能解决你的问题,请参考以下文章