首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

为什么在__new __()后总是调用__init __()?

在Python中,__new__()__init__()是两个不同的方法,它们在对象创建过程中扮演着不同的角色。

__new__()是一个静态方法,它负责创建并返回对象实例。在对象初始化之前,__new__()会被调用。因此,如果您重写__new__()方法,那么在创建对象后,必须调用__init__()方法来初始化对象。

__init__()方法是类的初始化方法,它在__new__()创建出对象之后,并且在__new__()方法返回对象实例之前被调用。这意味着__init__()负责为对象设置初始属性值。

因此,在__new__()之后调用__init__()是因为这两个方法在对象创建和初始化过程中各自扮演着不同的角色。__new__()负责创建对象,而__init__()负责初始化对象。这种分离允许开发人员更灵活地控制对象的创建和初始化过程。

总结一下,在__new__()之后调用__init__()是因为这两个方法在对象创建和初始化过程中各自扮演着不同的角色。__new__()负责创建对象,而__init__()负责初始化对象。这种分离允许开发人员更灵活地控制对象的创建和初始化过程。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

获得New Bing资格Ubuntu环境下使用New Bing

合理的使用ChatGPT和New Bing,可以使得我们的工作事半功倍。本文将要介绍的是,如何在国内免墙的环境下,Ubuntu中使用New Bing的功能。...edge stable main" $ sudo apt install microsoft-edge-dev 这几条指令主要就是添加微软的软件库,从中去下载dev版本的Edge浏览器,按照顺序安装完成,...安装完成Edge-dev的右上角可以看到已完成安装的扩展: 接下来就是配置重定向的请求了,可以参考如下所示的配置项: 配置完成,重启一下浏览器,打开网址web.skype.com,即可登录访问在线版本的...然后Skype中搜索Bing,即可跟New Bing进行聊天, 以下是一些简单的示例。...总结概要 本文主要介绍的是Ubuntu环境下安装Microsoft-Edge-dev浏览器,并且安装相关浏览器扩展用于修改请求头,最后成功Skype中使用New Bing对话的案例。

1.8K290
  • 为什么互联网外企中国总是失败?

    书中短短的一节分析本土企业和外企互联网大战的内容中,就看到了当年那些经典的战役。...相较于亚马逊美国,或者全球市场上的成功(主要是传统电商和 AWS),它在中国市场上的灰头土脸依然不容忽视。...亚马逊中国的市场上招到了出色的工程师——英语方面的天然差别除外,其中的 bar 我认为是比同级的美国 bar 明显更高的——中国市场上却节节败退。...但是对比淘宝,特别是 5 年以前,特别能够感觉到,淘宝逛就像是农贸市场逛,琳琅满目的商品,目不暇接的功能;但是亚马逊网站,就是一个简陋(好听点叫做简洁)无比的界面,如果你知道你大致想买什么东西,你可以很快找到你想要的东西...数据存放,以及伴随的数据审查可谓至关重要,当年 MSN 很受此约束,以至于它也成为了中国被 QQ 打垮的一个重要原因。外企中国建立数据中心可谓困难重重,AWS 进入中国也是克服了重重诸多阻碍。

    57820

    为什么刀具总是同一地点坏掉

    ,但一个位置已经磨损,这个位置总是像一个凹槽。...加工过程中,会产生切割热,而且这种热的温度相当高 高温下,工件将在加工区的工件材料上进行热处理 特别是当冷却剂不足时,最终的结果是工件的表面变得坚硬。这种硬化现象被称为加工硬化。...会出现上述情况,数控刀总是同一位置上断裂(或磨损) 因为刀片的一个位置总是用来加工坚硬的表面,那么这个地方将首先破碎。 哪种材料容易出现这种现象? 坚硬的材料,如坚硬的表面和氧化层表面的材料。...方法很简单,不要总是让刀片接触到工件的硬化表面。 处理过程中,尝试将其分成不同深度的几层进行处理。刀刃和硬化层的接触位置不是一,而是一条线,这样刀具寿命就可以提高。...也就是说,切割的深度工作硬化时不应该太浅, 如果太浅,刀具可能已经硬化层工作。这将出现问题。所以当工件变硬时,不是加工越浅越好。

    9210

    大厂为什么被裁员的总是普通员工而不是领导?

    互联网公司有一个不成文的潜规则,假如裁员是有N+1、N+2等补偿的时候,很多老员工和领导都是争先恐的申请被裁员。...但是公司不景气,导致业务线被裁掉了,那么第一个被裁的总是一线业务线的普通开发,这个时候老员工和领导总是能够很好的躲过去,而避免自己没有找到下家之前而被裁掉。...其实这个也是很多技术人想要争先恐的去做领导的原因,做领导不仅有权,还有很多潜规则。 当然这种现象大厂会更加恶劣,毕竟人多,当上领导了,你的权利就足够大了,你能够支配的资源也就更多了。...从老板的视角去看问题,他总是第一时间找到负责相关业务的负责人,也就是领导,他肯定不会找普通员工,且这样也是最高效的。...其实这个也是为什么领导总是喜欢带领自己的团队多做项目,并让自己的团队去承担更多的产品,这样做的目的也是为了提高自己的价值,让自己手上拥有更多的去找老板要资源的业务牌。

    23020

    程序员35岁应该转行吗?为什么

    作为已经马上迈向40的老程序员,现在大部分时间还是一线写代码,还是依然喜欢呆在电脑旁边静静写代码的感觉,作为一个技术工种经验的积累显得特别重要。...1.很多年龄大的程序员之所以公司地位会下降,根本的原因还是技能没有对应跟上,很多程序员度过前面几年的适应期之后放松了对新知识的学习动力,反正已经适应编程生活了,这种在年龄大了之后前面不作为会慢慢展示出来...3.很多程序员写代码就是为了一线城市能够挣点钱,然后年龄大点回老家,有这种想法的人也不在少数,而且这种基本上家眷都不在一起,一线城市孩子的上学问题也是很多程序员要考虑的事情,身边也发生过公司做的非常的技术高手...,因为孩子上学问题只能被迫回到老家,或者临近的城市买个房子。...随着软件产业的成熟,35岁对于程序员越来越不是问题了,本质原因是不是程序员随着年龄的增加,进取心是不是衰减,对于准备做一辈子的程序员,就要时刻保持跟进新技术,对于别的方向有发展的程序员,转型要趁早,

    2.1K20

    关于Spring 中方法内部调用自身方法事务 REQUIRE_NEW 不生效的解释

    问题来自:Spring事务的传播行为中REQUIRES_NEW真的有效吗 这个是Spring 对拦截的实现有关。Spring 拦截实现的方法是动态生成一个代理类。...这种方式对 target.method() 方式的调用是可以拦截到的,对于类内调用 method() 方式则拦截不到。...}); dynamicProxy.a(); } } 执行结果为: invoke in proxy this is a this is b 从这可以看出你类内自行调用方法是不会被代理拦截到的...对于单纯的class,没有接口,则 Spring 使用 cglib 进行代理,这里 Spring实现了自己的 CallbackFilter,具体类可以参见 Spring 源码CglibAopProxy ,目标类的...finally { AopContext.setCurrentProxy(oldProxy); this.targetSource.releaseTarget(target); } } 第二行

    1.5K30

    【错误记录】Kotlin 代码运行时报错 ( init 初始化块中调用还未初始化的成员属性 )

    文章目录 一、报错信息 二、问题分析 三、解决方案 该问题的本质就是 , 成员属性 init 初始化代码块中进行初始化 , 但是初始化之前调用了该 成员属性 , 编译时没有报错信息 , 但是运行时会报异常...code 1 上述代码在编译时 , 没有报错 ; 二、问题分析 ---- 从 初始化 角度分析 上述代码的执行顺序 , Kotlin 类 对象实例化 时会执行一系列的 初始化操作 , 这些操作按照如下顺序执行...name 属性 , 但是没有进行赋值 ; var name: String 再 , 执行 init 初始化块 , 其中先执行 nameFirstLetter 函数 , 该函数中调用了 fun nameFirstLetter...) name = "Tom" } 该问题的本质就是 , 成员属性 init 初始化代码块中进行初始化 , 但是初始化之前调用了该 成员属性 , 编译时没有报错信息 , 但是运行时会报异常...; 三、解决方案 ---- 调换 初始化代码块 中的代码顺序 , 先给 name 成员赋值 , 然后再执行 调用 name 成员的方法 ; class Hello{ var name: String

    1.7K10

    Spark为什么只有调用action时才会触发任务执行呢(附算子优化和使用示例)?

    但初学Spark的人往往都会有这样的疑惑,为什么Spark任务只有调用action算子的时候,才会真正执行呢?咱们来假设一种情况:假如Spark中transformation直接触发Spark任务!...所以Spark采用只有调用action算子时才会真正执行任务,这是相对于MapReduce的优化点之一。...但是每个Spark RDD中连续调用多个map类算子,Spark任务是对数据一次循环遍历中完成还是每个map算子都进行一次循环遍历呢? 答案很确定:不需要对每个map算子都进行循环遍历。...任何原RDD中的元素新RDD中都有且只有一个元素与之对应。...,而原RDD中的元素经flatmap处理可生成多个元素来构建新RDD。

    1.6K30

    cloudbase-init自带的pip原本是ok的,制作sysprep镜像执行pip -V就报这个错Fatal error in launcher……

    我发现cloudbase-init的bug,cloudbase-init自带的python和pip原本是ok的,制作sysprep镜像执行pip -V就报这个错 C:\Users\Administrator...process using '"c:\python_cloudbaseinit\python.exe" "C:\Program Files\Cloudbase Solutions\Cloudbase-Init...我自己尝试过2个解决方案: 1、重装pip,1.1.2版本的cloudbase-init自带的是Python 3.6.6,更新pip最高只能到pip 21.3.1,再高就报错了 参考https://cloud.tencent.com...这个方案是我突现灵感产生的,只需cmd命令行执行这句命令即可 mklink "c:\python_cloudbaseinit" "C:\Program Files\Cloudbase Solutions\Cloudbase-Init...powershell执行 cmd.exe /c mklink "c:\python_cloudbaseinit" "C:\Program Files\Cloudbase Solutions\Cloudbase-Init

    33320

    课时41:魔法方法:构造和析构

    三、_ _del_ _(self)   四、课时41课习题及答案 说的那么厉害,那什么是魔法方法呢? (1)魔法方法总是被双下划线包围,例如_ _init_ _()。...(3)魔法方法的“魔力”体现在它们总能够适当的时候被调用。...也许你会问:“有些时候定义时写_ _init_ _()方法,有些时候却没有,这是为什么呢?”...拥有对象初始化的时候拥有"长"和"宽"两个参数, 因此需要重写_ _init_ _()方法,因为我们说过, _ _init_ _()方法是类实例化成对象的时候首先会调用的一个方法...*************************** 二、_ _new_ _(cls[, ...]) *************************** _ _new_ _()才是一个对象实例化的时候所调用的第一个方法

    33930

    【JS 口袋书】第 8 章:以更细的角度来看 JS 中的 this

    根据这个蓝图,就可以通过“new调用“构造”Person类型的新对象: var me = new Person("Valentino"); JS中有很多方法可以改变 this 指向,但是当在构造函数上使用...new时,this 指向就确定了,它总是指向新创建的对象。...现在 this.data 总是指向post1。为什么? 箭头函数将this指向其封闭的环境(也称“词法作用域”)。换句话说,箭头函数并不关心它是否window对象中运行。...但 JS 函数总是一个对象中运行,这是任何全局函数在所谓的全局作用域中定义的情况。 浏览器中工作时,全局作用域是 window。...最后同样重要的是“new”绑定,它在通过调用“构造函数”时底层做了五处理。对于大多数开发人员来说,this 是一件可怕的事情,必须不惜一切代价避免。

    2.7K20

    【JAVA杂货铺】一文带你走进面向对象编程的构造方法 | Java| 面向对象编程 | (中)

    它的方法名和类名相同,且无返回值 package lecture1; class Person{ private String name; private int age; //构造方法 - 总是和类名相同...//当没有构造方法的时候,编译器会自动提供一个,不带参数的构造方法 //构造方法作用:实例化一个对象 public Person() { System.out.println("Person<init...为什么?...不正确,因为this表示的是对象的引用 this: this() : 调用自己的构造方法 ---> 只能在构造方法里面写 this.data:调用当前对象的属性 this.fun():调用当前对象的方法...构造方法的类型 中间调用构造方法3报错信息告诉我们:一个构造方法里面只能调用一次其他构造方法,否则会报错.

    9210

    魔法方法(第十五章)

    构造和析构 魔法方法总是被"__init__"两个下划线所包围 魔法方法是面对对象Python的一切 魔法方法的魔力总是能够适当的时候被调用 例子 class Rectangle: '''定义一个矩形类...,需要长宽两个参数,拥有计算周长和面积 的两个方法,需要对象初始化的时候,拥有长和宽两个参数 因此需要重写__init__方法''' def __init__(self,x,y...魔法方法中,也是讲究谁是老大的,也就是,谁是第一个被调用的,这里有的同学会说那肯定是(__init__())其实并不是,新知识点 __new__(cls[,....])才是一个对象实例化的时候所调用的第一个方法...__new__()与其他的魔法方法不同,他的第一个参数不是self而是一个类cls,而其他参数直接传递给__init__()方法。...__new__(cls,string) 运行 >>> a = Capstr("tianjun") >>> a 'TIANJUN' >>> 如果说__init__()和__new__()方法是对象的构造器的话

    26620

    一叶知秋,一个 LED 就能入门 Linux 内核「建议收藏」

    一时间,想到 为什么往 tigger 里写入 mmc0,就能让 LED 变成硬盘灯? 为什么往 brightness 文件里写入 1/0,就能控制灯的亮灭?...后来又追了下底层调用关系: led_classdev_register() of_led_classdev_register() // register a new object(对象) of led_classdev...classes_init() ,就不用我费脑筋去想下面再去追啥代码了,继续向上追就行了,干就完了 /* kernel */ start_kernel() rest_init() // Do the...; new->next = next; new->prev = prev; } create_dir() firmware_init...两个事例: 一个著名的马拉松运动员在给大家讲自己的成功经验,他说自己总是事先将路程坐车看一遍,记下参照物,然后把距离缩成一节一节的,跑好每一节。

    67631
    领券