python __dict__ 跟 dir()的区别
__dict__:要是对象的话返回的是一个对象自身的实例属性、不包括类的属性;要是类的__dict__则不包括父类的属性,只包含自身类属性【方法、类变量】,不包括实例属性。正是这样、每个实例的实例属性才会互不影响。
dir():返回的是对象的所有属性、包括父类的属性
python一切皆对象、类本身也有__dict__函数、跟dir()函数、那么类与实例的两个函数有没有区别呢?
答案是:有的
class A():
Tang = "tang"
def __init__(self):
self.model = None
self.setModel() def setModel(self):
self.model = "tanglaoer" class B(A):
BLao = "BLao"
def __init__(self):
self.model = "hello world"
super().__init__() b = B()
print(b.__dict__)
print(B.__dict__)
print(A.__dict__)
print(dir(b))
print(dir(B))
print(dir(A))
打印结果
{'model': 'tanglaoer'}
{'__module__': '__main__', 'BLao': 'BLao', '__init__': <function B.__init__ at 0x1053c1378>, '__doc__': None}
{'__module__': '__main__', 'Tang': 'tang', '__init__': <function A.__init__ at 0x1053c1488>, 'setModel': <function A.setModel at 0x1053c1510>, '__dict__': <attribute '__dict__' of 'A' objects>, '__weakref__': <attribute '__weakref__' of 'A' objects>, '__doc__': None}
['BLao', 'Tang', '__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', 'model', 'setModel']
['BLao', 'Tang', '__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', 'setModel']
['Tang', '__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', 'setModel']
python __dict__ 跟 dir()的区别的更多相关文章
- python中的__dict__和dir()的区别
Python下一切皆对象,每个对象都有多个属性(attribute),Python对属性有一套统一的管理方案. __dict__与dir()的区别: dir()是一个函数,返回的是list: __di ...
- __dict__和dir()的区别
__dict__和dir()的区别 dir() 一般用来查看模块的属性 __dict__从某方面上来说是dir()的子集 可以直接打印dir(),显示的是当前执行文件所有的属性 __dict__ __ ...
- python中__dict__与dir()的区别
在python中__dict__与dir()都可以返回一个对象的属性,区别在于: __dict__是对象的一个属性,而dir()是一个built-in的方法: __dict__返回一个对象的属性名和值 ...
- python之__dict__与dir(转载)
Python下一切皆对象,每个对象都有多个属性(attribute),Python对属性有一套统一的管理方案. __dict__与dir()的区别: dir()是一个函数,返回的是list: __di ...
- Python 由__dict__和dir()引发的一些思考
关于__dict__和dir()的区别和作用请参考这篇文章:http://blog.csdn.net/lis_12/article/details/53521554 说下我当时遇到的问题: class ...
- python中类与对象的命名空间(静态属性的陷阱)、__dict__ 和 dir() 在继承中使用说明
1. 面向对象的概念 1)类是一类抽象的事物,对象是一个具体的事物:用类创建对象的过程,称为实例化. 2)类就是一个模子,只知道在这个模子里有什么属性.什么方法,但是不知道这些属性.方法具体是什么: ...
- __dict__和dir()的区别:未完
1. dir()是一个函数,返回的是list.__dict__是一个字典,键为属性名,值为属性值: 2. dir()用来寻找一个对象的所有属性,包括__dict__中的属性,所以说__dict__ ...
- ava、Python和PHP三者的区别
Java.Python和PHP三者的区别 2017年07月15日 22:09:21 书生_AABB 阅读数:18994 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blo ...
- python中// 和/有什么区别
python中// 和/有什么区别 通常C/C++中,"/ " 算术运算符的计算结果是根据参与运算的两边的数据决定的,比如: 6 / 3 = 2 ; 6,3都是整数,那么结果也就是 ...
随机推荐
- 关于MapReduce的测试
题目:数据清洗以及结果展示 要求: Result文件数据说明: Ip:106.39.41.166,(城市) Date:10/Nov/2016:00:01:02 +0800,(日期) Day:10,(天 ...
- 设置object的key为变量
https://blog.csdn.net/shu580231/article/details/81367271
- python-matplotlib-ERROR
在导入包显示画图时,出错:ImportError: No module named '_tkinter 解决办法:通常原因是tkinter和tk-devel缺失 ERROR: matplotlib的图 ...
- [心得]暑假DAY 5
好久没更新博客了 最近事情太多太多 tarjan进阶,点双边双 T2压力 最大坑点:点双缩点 它不是直接把割点连成树(割点会有环) 而是用割点作”中介“,联接点双构成一颗树(所谓圆方树) 接着在上面进 ...
- [GIT]提交后版本恢复
如果在回退以后又想再次回到之前的版本,可以用relog查看commit id,再使用reset设置. 1.执行 relog 后: 展示的最前面的部分就是commit id,后面会用来作为恢复的 ...
- Java-GC 垃圾收集算法
程序计数器.虚拟机栈.本地方法栈随线程而生,随线程而灭. 栈帧随着方法的开始而入栈,随着方法的结束而出栈. 这几个区域的内存分配和回收都具有确定性,在这几个区域内不需要过多考虑回收的问题,因为方法结束 ...
- Linux上安装Python3
1. 安装支持包 yum -y groupinstall "Development tools" yum -y install zlib-devel bzip2-devel ope ...
- vue类似tab切换的效果,显示和隐藏的判断。
两者切换,动态显示对应的列表详情. 通过v-show的判断 数据驱动
- js前台传数组,java后台接收转list,前后台用正则校验
前台,传参数时,将数组对象转换成json串,后台java收到后用 JSONArray.fromObject 转成集合. 前台js:var params = {"FileNameList&qu ...
- [spring]基于注解的spring配置
Spring是一个基于IOC和AOP的结构J2EE系统的框架 IOC 反转控制 是Spring的基础,Inversion Of Control 简单说就是创建对象由以前的程序员自己new 构造方法来调 ...