类和对象

Python
作者

yangjh

发布于

2022年11月22日

理解Python中的类和对象可以类比于现实生活中的“设计图”和“实际产品”。在这个比喻中,类是设计图,而对象是根据这个设计图制造出来的实际产品。

类(Class)

想象你有一个设计制作汽车的设计图。这个设计图定义了汽车的各种特性:它有四个轮子、一个引擎、一定数量的座位等。在Python中,这个设计图就是一个类。它定义了一组属性(特性)和方法(功能)来描述某种事物。

对象(Object)

根据这个设计图,你可以制造出多辆实际的汽车。在Python中,这些实际的汽车相当于对象。每个对象都是根据类(设计图)创建的,但每个对象可以有自己的特定状态。比如,所有汽车都有四个轮子,但每辆车的轮胎品牌可能不同。

属性(Attributes)

属性是对象的特性,就像汽车的颜色、品牌、型号等。在Python中,我们定义类时会指定一些属性,这些属性属于创建的对象。例如,如果你创建了一个Car类,你可能会给它定义一些属性,比如colorbrand

方法(Methods)

方法相当于对象可以执行的操作。就像汽车可以启动、停止、加速等。在Python的类中,方法是定义在类内部的函数。这些方法定义了对象可以执行的操作。

案例:类和对象

下面是一个简单的例子来展示类、对象、属性和方法的概念:

class Car:
    def __init__(self, brand, color):
        self.brand = brand  # 属性
        self.color = color  # 属性

    def start(self):  # 方法
        print(f"{self.brand} car is starting.")

# 创建对象
my_car = Car("Toyota", "Red")

# 使用对象的属性和方法
print(my_car.color)  # 输出: Red
my_car.start()       # 输出: Toyota car is starting.

在这个例子中:

  • Car 是一个类,它定义了汽车的基本框架。
  • my_car 是一个根据 Car 类创建的对象,它是一个具体的“汽车”。
  • brandcolor 是属性,它们描述了 Car 对象的特性。
  • start 是一个方法,它定义了 Car 对象可以执行的操作。

上述代码中的__init__self 是与类和对象紧密相关的两个概念,它们在面向对象编程中扮演着重要角色。

__init__ 方法

__init__ 是一个特殊的方法(通常被称为构造器),它在创建一个类的新实例(即对象)时被自动调用。你可以把它看作是一个“初始化”方法,用于当你创建一个新对象时设置对象的初始状态。

  • 初始化对象的属性。
  • 在创建对象时执行一些基本的设置或准备工作。

考虑一个类 Car,它用 __init__ 方法来初始化品牌和颜色属性:

class Car:
    def __init__(self, brand, color):
        self.brand = brand
        self.color = color

在这里,当你创建一个 Car 对象时,__init__ 方法会被调用,如 my_car = Car("Toyota", "Red")

self 关键字

self 是对类的实例(对象)的引用。它用于访问属于该类的属性和方法。你可以将 self 看作是“这个对象本身”。

  • 在方法内部引用对象本身的属性和方法。
  • 区分方法参数和对象的属性。

Car 类的例子中,self.brandself.color 表示对象的属性。当你创建了一个 Car 对象,比如 my_car = Car("Toyota", "Red")self 就代表了 my_car

__init__ 方法中,我们用 self.brand = brand 来表示:将传入的 brand 参数的值赋值给这个对象的 brand 属性。