上代码!

class A:
def __new__(cls, *args, **kwargs):
obj = super().__new__(cls)
print("__new__ ", obj) # <__main__.A object at 0x00000000021D76A0>
return obj def __init__(self, name, age):
print("__init__ ", self) # <__main__.A object at 0x00000000021D76A0>
self.name = name
self.age = age a = A('sath', 22)
print(a) # <__main__.A object at 0x00000000021D76A0>

  

# 可以看出三次打印都是同一个内存地址
# 执行的顺序为: __new__ >>>>> __init__ >>>>> a

  

# 一个完整的实例化对象过程:
# 1. 当执行到类名加括号时, 首先执行"__new__"开辟一块内存空间, 并且携带了你要给对象封装的属性
# 2. 将开辟的空间和要封装的对象属性return给"__init__"
# 3. "__init__" 初始化这一块对象的内存空间, 将属性封装进这个内存空间中
# 4. 对象空间初始化完成后, 将这个空间返回给调用者, 得到一个类型为"A"的对象"a"

  

 


最新文章

  1. .Net Core Linux centos7行—发布程序到生产环境
  2. ASP.NET连接远程Oracle数据库,提示试图加载格式不正确的程序
  3. ubuntu14.04下的NVIDIA Tesla K80显卡驱动的安装教程
  4. Node.Js —— PM2介绍
  5. ubuntu+php5.6+redis+mysql5.5+nginx
  6. webhdfs追加写HDFS异常
  7. 【js】js 让图片旋转
  8. poj 3080 Blue Jeans(水题 暴搜)
  9. bootstrap.css.map这个文件有何用处?该怎能使用它?
  10. Codeforces Round #258 (Div. 2/B)/Codeforces451B_Sort the Array
  11. jQuery回到顶部插件jQuery GoUp
  12. Javascript赋值语句中的“&amp;&amp;”操作符和"||"操作符
  13. POI单元格添加公式以及读取公式结果的值
  14. Node.js学习之TCP/IP数据通讯
  15. Web前端框架与类库的思考【转】
  16. Android AsyncTask内部线程池异步执行任务机制简要分析
  17. 在Office Add-in中实现单点登陆(SSO)
  18. python语法_模块
  19. 通过JS如何获取IP地址
  20. HOWTO: Avizo/Amira使用前的显卡设置(Volume Rendering,Volren不显示)

热门文章

  1. js贪食蛇
  2. AE多用户同时编辑同一个版本数据的解决方法
  3. Java入门到精通——框架篇之Hadoop概述
  4. Git回退到指定节点的版本
  5. html网页访问WebAPI中的方法遇到的问题
  6. jQuery替换已存在于元素element上的事件event
  7. Hadoop -&gt;&gt; MapReduce编程模型
  8. oracle数据库建表设置自增主键
  9. RAC常用日志总结
  10. Oracle 11.1.0.6 导入导出bug