Python 3.x中的属性

在Python3.x中,属性是类成员,用于描述对象的状态和行为。实例属性是每个实例独有的,如`self.name`和`self.age`,而类属性如`class_attr`是所有实例共享的。当实例属性与类属性同名时,实例属性优先级更高。可以通过类名或`self.__class__`访问类属性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在 Python 3.x 中,属性是一种特殊的类成员,它定义了对象的状态和行为。属性通常用于存储对象的内部状态和数据,提供对其进行访问、修改和删除的接口。

Python 的属性可以分为两种类型:实例属性和类属性。

  • 实例属性是属于实例对象的,每个实例都有自己的一套属性。实例属性的定义和访问通常发生在方法中,如下所示:
class MyClass:
    def __init__(self, name, age):
        self.name = name   # 定义实例属性
        self.age = age

    def get_name(self):
        return self.name  # 访问实例属性

my_obj = MyClass("Alice", 18)
print(my_obj.get_name())   # 输出 "Alice"
  • 类属性是属于类的,所有实例共享同一份属性值。类属性的定义和访问通常发生在类定义的顶层,如下所示:
class MyClass:
    class_attr = 42   # 定义类属性

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

my_obj1 = MyClass("Alice", 18)
my_obj2 = MyClass("Bob", 20)
print(my_obj1.class_attr)   # 输出 42
print(my_obj2.class_attr)   # 输出 42

需要注意的是,当实例属性和类属性同名时,实例属性会覆盖掉类属性。如果想要访问类属性,可以使用类名或 self.__class__ 来访问,如下所示:

class MyClass:
    class_attr = 42

    def __init__(self, name, age):
        self.name = name
        self.age = age
        self.class_attr = 18   # 定义同名的实例属性

my_obj = MyClass("Alice", 18)
print(my_obj.class_attr)           # 输出 18
print(MyClass.class_attr)          # 输出 42
print(my_obj.__class__.class_attr) # 输出 42
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值