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

Python中class attribute术语的正式定义是什么?

Python中“类属性(class attribute)”的正式定义

在Python的官方语境里,**attribute(属性)**是覆盖范围极广的术语,指与对象(包括类对象和实例对象)绑定的任何命名实体——不管这个实体是变量、方法,还是通过装饰器定义的属性,都属于attribute的范畴。

具体到类相关的属性:

  • **类属性(class attribute)**正式定义为直接绑定到类对象本身的成员,包括:
    • 类变量:定义在类体中、不属于任何方法的变量,比如class MyClass: x = 10里的x
    • 类的方法:包括实例方法、类方法(@classmethod)、静态方法(@staticmethod)——本质上这些方法是可调用的类属性
    • 用@property等装饰器定义的类层面属性
  • 绑定到类实例的成员,比如__init__里定义的self.y = 20中的y,被称为实例属性(instance attribute)。日常交流中有人会把它笼统归为类相关属性,这也是理解分歧的来源。

之所以会有“attribute只指变量”的误解,是因为很多人习惯把方法单独区分,但在Python的设计逻辑里,方法本身也是一种对象,和变量一样是类或实例的命名成员,完全符合attribute的定义。

举个直观的代码例子:

class Demo:
    # 类变量(类属性)
    class_val = "我是类变量"

    def __init__(self):
        # 实例变量(实例属性)
        self.instance_val = "我是实例变量"

    # 实例方法(类属性)
    def instance_func(self):
        return "我是实例方法"

    # 类方法(类属性)
    @classmethod
    def class_func(cls):
        return "我是类方法"

这里Demo.class_val、Demo.instance_func、Demo.class_func都是类的属性;而Demo().instance_val是实例属性。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 06:20:51