面向对象其他相关
Posted chenhuping
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了面向对象其他相关相关的知识,希望对你有一定的参考价值。
反射
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‘)) #报错
以上是关于面向对象其他相关的主要内容,如果未能解决你的问题,请参考以下文章