Python 属性——类和实例属性示例

在 Python 中创建类时,通常会创建可以在类的每个对象之间共享的属性,或者创建对类的每个对象都是唯一的属性。

在本文中,我们将通过示例了解 Python 中的类属性和实例属性之间的区别。

在此之前,让我们看看如何在 Python 中创建一个类。

如何在 Python 中创建一个类

要在 Python 中创建一个类,我们使用 class 关键字后跟类名。这里有一个例子:

class Student:
    name = "Jane"
    course = "JavaScript"

在上面的代码中,我们创建了一个名为 Student 的类,该类具有 name 和 course 属性。现在让我们从这个类创建新对象。

class Student:
    name = "Jane"
    course = "JavaScript"

Student1 = Student()

print(Student1.name)
# Jane

我们已经从 Student 类中创建了一个名为 Student1 的新对象。

当我们打印 Student1.name 时,我们将 “Jane” 打印到控制台。回想一下,Jane 的值存储在创建的原始类中的一个变量中。

这个 name 和 course 变量实际上是类属性。我们将在下一节中看到更多示例,以帮助您更好地理解。

Python 中的类和实例属性

为了给出这两个术语的基本定义,类属性是类的每个对象继承的类变量。对于每个新对象,类属性的值保持不变。

正如您将在本节的示例中看到的那样,类属性是在 __init__() 函数之外定义的。

另一方面,在 __init__() 函数中定义的实例属性是类变量,允许我们为类的每个对象定义不同的值。

这是一个例子:

class Student:
    school = "blog.axiaoxin.com"

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

Student1 = Student("Jane", "JavaScript")
Student2 = Student("John", "Python")

print(Student1.name) # Jane
print(Student2.name) # John

在上面的代码中,我们在 Student 类中创建了一个名为 school 的变量。

我们在 __init__() 函数中创建了另外两个变量——name 和 course——我们使用 self 参数对其进行了初始化。

__init__() 函数中的第一个参数用于在函数中创建变量时初始化其他参数。你可以叫它任何你想要的名字——按照惯例,最常使用的是 self。

school 变量充当类属性,而 name 和 course 是实例属性。让我们分解上面的例子来解释实例属性。

Student1 = Student("Jane", "JavaScript")
Student2 = Student("John", "Python")

print(Student1.name) # Jane
print(Student2.name) # John

我们从 Student 类创建了两个对象——Student1 和 Student2。默认情况下,每一个对象都有类中创建的所有变量。但是每个对象都能够拥有自己的 name 和 course 变量,因为它们是在 __init__() 函数中创建的。

现在让我们打印每个对象的 school 变量,看看会发生什么。

print(Student1.school) # blog.axiaoxin.com
print(Student2.school) # blog.axiaoxin.com

两者都给了我们相同的值,因为 school 变量是一个类属性。

总结

在本文中,我们了解了如何在 Python 中创建类以及类和实例属性之间的区别。

总之,类属性对于每个对象都保持相同,并且在 __init__() 函数之外定义。实例属性在某种程度上是动态的,因为它们在每个对象中可以有不同的值。

实例属性在 __init__() 函数中定义。

祝您编码愉快!


 python

也可以看看