标签:必须 导入模块 面向对象 对象 字符 一个 形式 文档 添加
isinstance(obj,cls)检查obj是否是类cls的对象
issubclass(sub,super)检查sub类是否是super类的派生类
python中面向对象中的反射:通过字符串的形式操作对象相关的属性。python中的一切事物都是对象(都可以用反射)。
hasattr(object,name)
# 判断object中有没有name的属性或者方法
getattr(object,name,default = None)
# object: 对象
# name: 字符串,属性
# default: 默认返回值,如果不提供该参数,在没有对应属性时,触发AttributeError
setattr(object,name,value)
# object: 对象
# name: 字符串,属性
# value: 属性值
# 对已存在的属性进行修改,如果没有,则会新建出这个属性
delattr(object,name)
# object: 对象
# name: 属性(必须是属性,不能是方法)
# detattr(x,‘foobar‘) == del x.foobar
__dict__ :类的属性(包含一个字典,由类的数据属性组成)
__doc__: 类的文档字符串
__name__: 类名
__module__:类定义所在的模块(类的全名是‘__main__.className‘,如果类位于一个导入模块common_module中,那么className.__module__ 等于common_module)
打印内容如下:
# 把一个类的实例变成str
class Person(object):
self.name = name
self.gender = gender
def __str__(self):
return ‘(Person:%s,%s)‘%(self.name,self.gender)
def __setattr__(self,name,value):
pass
# 添加/修改属性时,会触发执行
def __getattr__(self,item):
pass
# 只有在调用属性,且属性不存在时,才会触发
def __delattr__(self,item):
pass
# 删除属性时会触发
标签:必须 导入模块 面向对象 对象 字符 一个 形式 文档 添加
原文地址:https://www.cnblogs.com/oden/p/10426861.html