首页 > 其他分享 >13.8 __new__与__init__演示创建对象的过程

13.8 __new__与__init__演示创建对象的过程

时间:2022-09-24 20:45:59浏览次数:47  
标签:__ self 创建对象 Person init new id

 

'''__new__用于创建对象, __init__把创建的对象初始化'''
class Person(object):
    def __new__(cls, *args, **kwargs):
        print('__new__被调用执行了,cls的id值为{0}'.format(id(cls)))
        obj=super().__new__(cls)
        print('创建的对象的id为:{0}'.format(id(obj)))
        return obj

    def __init__(self, name, age):
        print('__init__被调用了,self的id值为:{0}'.format(id(self)))
        self.name = name
        self.age = age

print('object这个类对象的id为:{0}'.format(id(object)))
print('Person这个类对象的id为:{0}'.format(id(Person)))

#创建Person类的实例对象
p1=Person('张三',20)
print('p1这个Person类的实例对象的id:{0}'.format(id(p1)))
E:\PycharmProjects\pythonProject\venv\Scripts\python.exe E:/PycharmProjects/pythonProject/demon1/demo49.py
object这个类对象的id为:140716676791120
Person这个类对象的id为:2222433748464
__new__被调用执行了,cls的id值为2222433748464
创建的对象的id为:2222433123392
__init__被调用了,self的id值为:2222433123392
p1这个Person类的实例对象的id:2222433123392

进程已结束,退出代码0

 

标签:__,self,创建对象,Person,init,new,id
From: https://www.cnblogs.com/988MQ/p/16726532.html

相关文章

  • 关于mybatis-plus字段更新策略的颗粒度问题
    1.三个可以控制字段更新策略的地方及颗粒度区分1.1mybtis-plus全局配置1.2entity的注解1.3baseMapper.update方法的指定set注意:必须判空set,否则非空时出现两次set语......
  • 数理统计课程考试中一定要记住的易错点啊(二):参数估计
    在参数估计这里,需要理清楚矩估计、极大似然估计、顺序统计量估计之间的区别、原理和步骤。选择估计量时分清楚无偏性、有效性、相合性的概念,会计算UMVUE。至于区间估计,就......
  • MapReduce学习
    笔记记录   ......
  • Linux 服务器开发基础学习笔记
    Linux发展历史1969--unix肯汤姆森,C丹尼斯里奇商业:-IBM-APPLE-惠普-sunBSD:-freeBSDLinux:-redhatcentos-debainubuntuMMU作用......
  • 一道几何题的简单解法
    这是高中数学教材复数部分的一个例题.以下是该题的一个简单的初中解法:如下图所示,原题等价于证明∠CHA+∠CDA=45°,即等价于∠CHA=∠FAD.在直角三角形CHA中,短......
  • Lost yume I
    可爱的香甜的闪亮的,遗失的\(\color{faaada}{梦。}\)第七天,神说要有梦,于是有了梦。2022.9.23或许是昨天看了很多涩图,早上梦见了图。并不是涩图,而是可爱的,梦幻的。......
  • 爬取某东的小米的手机信息20页 用selenium来爬取
    importtime#fromseleniumimportwebdriverfromselenium.webdriver.chrome.serviceimportServicefrombs4importBeautifulSoupfromselenium.webdriver.commo......
  • c#用visual studio开发时输出信息到consolel.writeline控制台的方法
    winform程序进行Console.WriteLine(result)输出时是无的,但很多时候我们开发时希望输出一些信息来查看代码运行情况,我们可以这样操作:1.在解决方案资源管理器右击项目名-......
  • 后缀自动机
    后缀自动机SAM昨天看了一晚上今天有些感性理解,记一下。SAM是什么样的endpose是指一个子串在原串中的所有结束位置的集合。比如\(ababc\)中子串\(ab\)的endpose......
  • #Lua:Lua调用C++生成的DLL库
    Lua调用C++生成的DLL库本文参考了某大佬的博客,写得十分详细,推荐!!!需求:在之前的求解器中添加了Lua库,使得程序可以在Lua脚本中实现自定义函数功能,考虑到未来可能需要与......