Python 查看对象属性的几种方式: __dict__, dir(), vars(), locals()

Python011

Python 查看对象属性的几种方式: __dict__, dir(), vars(), locals(),第1张

为了方便用户查看类中包含哪些属性,Python 类提供了 __dict__ 属性。需要注意的一点是,该属性可以用类名或者类的实例对象来调用,用类名直接调用 __dict__ ,会输出该由类中所有类属性组成的字典;而使用类的实例对象调用 __dict__ ,会输出由类中所有实例属性组成的字典。

先来看一下Python类的 __dict__ 属性和类实例对象的 __dict__ 属性,例子如下:

从以上的测试结果中可以得出以下结论:

看几个小例子:

如果没传入参数,就打印当前调用位置的属性和属性值,类似于下面的 locals() 。

locals() 返回调用者当前局部名称空间的字典。在一个函数内部,局部名称空间代表在函数执行时候定义的所有名字, locals() 函数返回的就是包含这些名称的字典。

所说所有的变量都是对象。 对象在python里,其实是一个指针,指向一个数据结构,数据结构里有属性,有方法。\x0d\x0a \x0d\x0a对象通常就是指变量。从面向对象OO的概念来讲,对象是类的一个实例。在python里很简单,对象就是变量。\x0d\x0a \x0d\x0aclass A:\x0d\x0amyname="class a"\x0d\x0a上面就是一个类。不是对象\x0d\x0aa=A()\x0d\x0a这里变量a就是一个对象。\x0d\x0a它有一个属性(类属性),myname,你可以显示出来\x0d\x0aprint a.myname\x0d\x0a \x0d\x0a所以,你看到一个变量后面跟点一个小数点。那么小数点后面就是它的属性或者是方法。带括号的方法。不带就是属性。