当前位置: 代码迷 >> 综合 >> python init new class
  详细解决方案

python init new class

热度:81   发布时间:2023-10-10 22:15:49.0
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time    : 2020/12/11 23:36
# @Author  : flyx
# @Site    : 
# @File    : newinit.py
# @Software: PyCharm
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 objdef __init__(self,name,age):print('__init__方法被调用了,self的id为'.format(id(self)))self.name = nameself.age = ageprint('object这个类对象的id{0}'.format(id(object)))
print('Person这个类对象的id{0}'.format(id(Person)))# 创建Person类的实例对象
p1 = Person('张三',20)
print('p1的id{0}'.format(id(p1)))

object这个类对象的id140713382284992
Person这个类对象的id2351314789480
__new__被调用执行了,cls的id为2351314789480
创建的对象id为2351344788704
__init__方法被调用了,self的id为
p1的id2351344788704

  相关解决方案