我们之前有学过isinstance(),该函数是判断某实例是否是某类型的实例对象。现在我们想获取一个实例对象的更多信息,怎么获取呢?接下来我们将学习dir(), type(), getattr(), setattr(),来获取实例的更多信息。
目录
type()获取变量的类型
type(x) 的参数x是数据内容,由此判断该x是什么类型。
dir()获取实例变量的所有属性
dir(x) 即可获得变量x的所有属性
像上述p的属性里,包含很多自带的特殊属性__xx__,那么怎么才能只查询到我们自己定义的属性呢?用filter()过滤器。但这个函数我知道怎么用,在这个地方我就不知道该怎么用了。(亲爱的读者,您读了我的这篇文章后,如果知道怎么用的话,希望给我留言,大家一起学习一起进步,笔芯)
getattr()获取已知实例的已知属性的属性值
以上面dir()中的代码举例子。
getattr(类型名,属性名):第一个参数是实例名,第二个参数是属性名,注意属性名要用引号。
当getattr的第二个参数属性名不属于该类型时,会提示该类型没有该属性。可以给getattr加上第三个参数,当类型没有该属性值时,则输出该默认的参数。
setattr()给对象添加属性,给属性设置属性值
setattr(实例对象,'属性名',属性值)
由上面我在cmd上运行的例子可以看出,setattr()可以给实例对象添加新的属性并设置属性值,也可以给实例对象的属性设置新的属性值。
欢迎大家和我一起交流学习,我的公众号是: