You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

__init__是否属于类属性?结合Python代码实例答疑

关于Python类中__init__是否属于类属性的解答

先看你给出的代码示例:

class Student:
    school = "stackoverflow"
    
    def __init__(self, name, course):
        self.name = name
        self.course = course

直接给结论:__init__确实属于类属性,不是只有school才是。

具体解释:

  • 类属性的定义很明确:类体中直接定义的所有成员(包括变量、方法)都是类的属性,它们都会被存在类的__dict__属性里。你可以试试打印Student.__dict__,会看到__init__和school都在这个字典中。
  • 两者只是类属性的不同类型:
    • school是类数据属性,属于类级别的共享变量,所有Student实例都会共用这个值(除非实例自己重新赋值覆盖)。
    • __init__是类函数属性,当你创建实例时,Python会自动把这个类方法绑定到实例上,变成实例方法来执行,但它本身的归属还是类的属性——你可以直接通过Student.__init__来访问这个方法,就像访问Student.school一样。
  • 哪怕__init__是特殊的构造方法,本质上和你在类里定义的其他普通方法没有区别,都是类属性的一种。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 18:47:07