"""
对象的创建过程:new创建 返回
模拟实例对象的创建过程. 为啥是静态方法? 先有new后来init.因为init是需要实例对象来调用的,需要一个实例对象和self形参.所以需要new首先来创建一个实例对象. """ class Dog:
pass dog1 = Dog() """
类名()内部隐藏了两个魔法方法的自动调用 1.__new__:创建并返回一个新的实例对象.魔法方法,自动调用,自动传参(Python解释器自己会)
2.__init__:初始化操作,定义属性,先new后init,new后才会有实例对象,init需要使用实例对象(self形参位置需要传递一个实参过来)
""" # print(dog1) def dog_instance():
"""模拟实例对象创建过程""" # 1.调用new方法 创建 返回
# Dog.__new__()
instance = object.__new__(Dog)
# new(cls)cls:形参,new方法调用的时候需要一个实参.虽然new是一个静态方法,不会自动传参和自动调用.但是Python解释器调用这个方法的时候在内部帮我们传递了实参给形参cls.(谁调用,谁传递参数.)
# print(instance)
# 2.初始化,定义属性
instance.__init__()
# 3.把实例对象返回
return instance # Dog_instance() # <__main__.Dog object at 0x000001879F5AB710> dog2 = dog_instance()
print(dog2) # <__main__.Dog object at 0x000001FF98428710>

最新文章

  1. okhttp封装时,提示 cannot resolve method OkHttpClient setConnectTimeout() 函数
  2. IsPostBack--Asp.net
  3. C#的枚举数(Enumerator)和可枚举类型(Enumerable)
  4. laravel--上传
  5. C# 迪杰斯特拉(Dijkstra)算法
  6. java笔记---equals和==的区别
  7. LeetCode 204. Count Primes (质数的个数)
  8. 简单总结下 cookie、session
  9. H5单张、多张图片保存续篇
  10. Ubuntu系统常见问题
  11. 你真的了解PeopleSoft中的function和method方法嘛
  12. Luogu P3227 [HNOI2013]切糕 最小割
  13. 与其他相似软件对比,win10中个人助理conrtana具备哪些独特的功能
  14. 系统不支持WP开发
  15. SpringBoot项目接口第一次访问慢的问题
  16. 用SQL统计每分钟的访问量
  17. 【H5】dropload (移动端下拉刷新,上拉加载)
  18. Tomcat启动默认访问项目
  19. iOS底层原理总结 - 探寻block的本质(一)
  20. CentOS下安装robot-framework

热门文章

  1. 为 STM32 移植 Berry 脚本语言
  2. ORA-01000 error
  3. python 操作redis数据
  4. cboard进行访问,汉化
  5. 历史上最详细的SpringCloud搭建微服务的过程。(包括注册中心,服务提供者和服务消费者)
  6. 深入理解Magento – 第十章、十一章(英文原版地址,仅供参考)
  7. jsp中提供的四种属性范围
  8. js处理浮点数一点思考
  9. 跨域解决方法之window.name
  10. (转)区别TextBlock和Label