Python 3.x中的属性

在 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

你可能感兴趣的:(网络程序设计,python,开发语言)