在第一部分中,我们学习了 Python 的基本语法、数据类型、控制流语句以及函数。在第二部分中,我们将更深入地学习 Python 的高级特性,例如面向对象编程、异常处理、文件处理和模块化编程。
当我们需要处理某些具有相同属性和方法的对象时,类和对象就成为了一个重要的解决方案。类是一种用户自定义的数据类型,它包含了一些方法和属性的定义,用来描述对象的特征和行为。而对象则是类的实例化,它是由类创建的具有特定属性和方法的实体。
在 Python 中,可以使用 class 关键字来定义一个类,如下所示:
在这个代码中,我们定义了一个名为 Person 的类,它包含一个类属性 species ,一个构造函数 init 和两个方法 say_hello 和 set_species 。构造函数 init 用于创建实例对象,并初始化实例属性。实例方法 say_hello 用于打印一条问候语,并使用到实例属性 self.name 和 self.age 。
在 Python 中,可以使用类来创建对象。在创建对象时,会自动调用类的构造函数,如下所示:
在上面的代码中,我们分别使用类 Person 了两个对象 p1 和 p2 ,并分别调用了它们的实例方法 say_hello 。
在 Python 中,对象的属性可以通过点运算符来访问,如下所示:
在上面的代码中,我们分别访问了对象 p1 和 p2 的属性 name 和 age ,并将它们打印出来。
在 Python 中,类可以继承其他类的属性和方法。被继承的类被称为父类或基类,继承它的类被称为子类或派生类。子类可以覆盖父类的方法,并添加自己的属性和方法。
例如,下面的代码定义了一个子类 Student ,它继承了父类 Person 的属性和方法,并添加了自己的属性和方法:
在这个例子中,我们定义了一个子类 Student ,它继承了 Person 类。子类 Student 有一个新的属性 major ,表示学生的专业。在子类中,我们重写了父类的实例方法 say_hello ,添加了一个新的输出信息 —— 学生的专业。在子类 Student 的构造函数中,我们调用了父类 Person 的构造函数,以初始化父类的属性 name 和 age 。这是通过调用 super().init(name, age) 来实现的。
在定义好 Student 类后,我们使用它创建了两个 Student 对象 s1 和 s2 ,并使用它们的实例方法 say_hello 来打印输出。我们还访问了对象s2的属性 species 和 major ,其中属性 species 是从父类 Person 继承而来的。
以上就是 Python 中类和对象的基本用法,它们是面向对象编程的基石,可以使我们更方便地组织和管理代码,提高代码的可维护性和重用性。在下一节中,我们将介绍 Python ....