鱼C论坛

 找回密码
 立即注册
查看: 3024|回复: 3

__init__和__new__魔法方法的疑惑?

[复制链接]
发表于 2021-3-25 16:22:00 | 显示全部楼层
本帖最后由 heidern0612 于 2021-3-25 16:28 编辑

Q1: 从语法的层面来说,我感觉这俩是一个意思....



Q2:从游戏的方面来讲,new的创建类似于你的角色槽,init创建则类似于你创建角色之后的各项属性,比如人物形象,人物种族和人物技能等。

你得首先有个角色槽,你才能创建你的角色,不然的话,哪来的空间给你创建呢?

也就是说,new的话定义了实例化具体的大方向属性。系统告诉你了,你要创建到底是个人还是个物品栏还是个仓库(大类别)。

而init的话,定义了你创建这个东西的属性(小类别),比如人物的话,你需要创建不同种族;物品的话,这个是补血的还是加buff的;仓库的话,是个人仓库还是工会仓库等。


所以咱们常见的new方法,一般都是改写了底层各类属性规则(如改写str或加减规则等),而init方法用于改写你创建的规则(如给你创建的实例赋予属性) 。

非要给两者分个区别的话,我个人感觉new方法类似神明创造了世界,而init类似人类创造了各项工具。


以上纯属个人见解。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-9-23 03:35

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表