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

面向对象其他相关

时间:2018-09-02 21:42:50      阅读:147      评论:0      收藏:0      [点我收藏+]

标签:python   def   nbsp   span   attr   class   turn   lam   属性   

反射
python中的反射功能是由以下四个内置函数提供:hasattr、getattr、setattr、delattr,改四个函数分别用于对对象内部执行:检查是否含有某成员、获取成员、设置成员、删除成员

hasattr,getattr,setattr,delattr.
检查成员,获取成员,设置成员,删除成员.
class Foo():
    def __init__(self):
        self.name = wupeiqi

    def func(self):
        return func
obj = Foo()
检查是否含有成员
print(hasattr(obj,name))  #结果Ture
print(hasattr(obj,func))  #结果Ture
print(hasattr(obj,nice))  #结果False

获取成员
print(getattr(obj,name))  #结果wupeiqi
print(getattr(obj,func)())    #结果func

设置成员
setattr(obj,age,18)
print(getattr(obj,age))   #结果18

setattr(obj,nice,lambda x:x**2)
print(getattr(obj,nice)(2))   #结果4

删除成员
delattr(obj,name)
print(getattr(obj,name))  #报错,原因‘Foo‘对象没有属性‘name‘(‘Foo‘ object has no attribute ‘name‘)
delattr(obj,func)
print(getattr(obj,func))  #报错

 

面向对象其他相关

标签:python   def   nbsp   span   attr   class   turn   lam   属性   

原文地址:https://www.cnblogs.com/chenhuping/p/9575165.html

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