You need to enable JavaScript to run this app. 为什么Python中实例属性需要像示例代码中这样进行三次定义?
优惠活动
大模型
产品
解决方案
定价
更多

为什么Python中实例属性需要像示例代码中这样进行三次定义?

问题解答

对应的示例代码如下:

class Details():
   def __init__(self,name,age):
      self.name = name
      self.age = age

首先得纠正一个误解:这三个位置的同名变量根本不是「三次定义实例属性」,只是大家习惯把参数和属性名写一致方便阅读而已,三者的作用完全不一样:

  • __init__ 括号里的 name、age 是初始化方法的局部入参,仅用来接收创建实例时外部传入的值,作用范围只限于 __init__ 方法内部。你要是愿意,把参数名改成 n、a 也完全能正常运行,和后续的实例属性没有强制绑定关系。
  • 赋值语句左边的 self.name 是真正绑定到实例上的实例属性,这里的 self 就代指你刚创建出来的那个实例对象,只有给 self 绑定了对应属性,后续你才能通过实例访问到这个值,比如你执行 d = Details("张三", 22) 之后,调用 d.name 能拿到结果,靠的就是这里的绑定操作。
  • 赋值语句右边的 name 就是前面定义的局部入参,作用就是把外部传入的临时值,赋值给实例属性长期存储。等 __init__ 方法执行完,局部入参就会被销毁,只有实例上的属性会一直保留。

内容的提问来源于stack exchange,提问作者Deborah

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.12 19:30:04