Python 类属性和实例属性

在本文中,我们将重点关注Python 类属性和实例属性

属性是编程语言的关键角色。它们负责保存重要的数据值并帮助进行数据操作。

现在让我们开始吧!


理解Python类属性

Python Class Attribute是包含在类中的属性/变量。也就是说,它的范围位于Python 类内。

Class 属性仅创建其自身的单个副本,并且该单个副本由该特定类中的所有函数和对象共享和使用。

句法:

class Class-name:
     variable = value

现在让我们通过下面的示例来了解其实现。


通过示例实现类属性

class class_attribute:
    val = 1
 
    def product(self):
        class_attribute.val *= 10
        print(class_attribute.val)
 
obj1 = class_attribute()
obj1.product()      
  
obj2 = class_attribute()
obj2.product()      

在此示例中,我们创建一个类变量“val”并将其初始化为 1。

此外,我们在函数 Product() 中访问变量“val”,并通过将其乘以 10 来操作该值。

可以清楚地观察到,创建的两个对象都使用变量“val”的相同副本。因此,一开始,val = 1。

当对象 obj1 调用该函数时,使用“val”的相同副本(该值不会重置),因此它变为 val=10。被 obj2 调用时,val 变为 val*10,即 10*10 = 100。

输出:

10
100

了解 Python 实例属性

Python Instance attribute是一个局部属性/变量,其范围位于使用该属性的特定函数内。因此,它被一个特定的函数所包围。

实例属性每次被函数/对象调用时都会创建其自身的新副本也就是说,每次对象或函数尝试访问该变量时,都会使用该变量的一个不同副本。

句法:

def function-name():
    variable = value

现在让我们借助示例来实现本地属性。


通过示例实现实例属性

class instance_attribute:
 
    def product(self):
       val = 20
       val *= 10
       print(val)
 
 
obj1 = instance_attribute()
obj1.product()      
  
obj2 = instance_attribute()
obj2.product()

在此示例中,我们将实例属性声明并初始化为 val = 20。

此外,当 obj1 尝试通过函数访问变量时,它会创建自己的新副本,将默认值重置为初始化值,然后提供对其的访问。

当 obj2 尝试访问实例变量“val”时,会重复相同的情况。

输出:

200
200

结论

至此,我们这个话题就结束了。如果您遇到任何问题,请随时在下面发表评论。


参考