今天我们将深入研究Python和面向对象编程(OOP)的基本概念之一: classes(类)。本指南专为初学者、学生以及任何希望掌握使用Python课程的基础知识的人而编写。
1.Python中的类是什么?
Python中的类就像创建对象的蓝图。对象是类的实例,带有类中概述的特征和行为。将类视为构建相似但不同项目的模板。例如,如果您有一个名为'Animal'的类,则从该类创建的每个对象都可以代表不同的动物,但所有对象都将共享相同的结构(如名称、年龄等属性)和行为(如make_sound等方法)。
2.创建你的第一个类
要理解这一点,请考虑Animal类。此类可以概述动物的一般特征和行为,例如`name`、`age`或`make_sound()`。
示例:动物类
class Animal:
def __init__(self, name, age):
self.name = name
self.age = age
def make_sound(self, sound):
print(f"{self.name} says {sound}")
描述:
①构造函数(__init__方法):当创建Animal类的新实例时,会自动调用该方法。它需要四个参数:
self:表示类的实例并允许访问其属性和方法。
name:用于存储动物名称的字符串属性。
age:用于存储动物年龄的整数或浮点属性。
color:存储动物颜色的字符串属性。
②这些参数用于初始化实例变量self.name和self.age。
方法make_sound:这是一个带有两个参数的实例方法:
self:和以前一样,它代表类的实例。
sound:代表动物发出的声音的字符串。
此方法不返回任何内容。相反,它会向控制台打印一条消息,其格式包括动物的名称和指定的声音。例如,如果动物的名字是“Dog”并且声音是“bark”,则输出将为“Dogsaybark”。
3.__init__()方法
Python类中的方法__init__()对于理解面向对象编程至关重要。以下是其关键细节:
构造函数:__init__()是一种特殊的方法,也称为构造函数。它初始化类的新实例。
Self参数:第一个参数__init__()始终是self,它指的是正在创建的实例。
初始化:它通过为对象属性赋值或执行任何其他必要的设置来设置对象的初始状态。
附加参数:除了self之外,您还可以传递附加参数__init__()来动态地为对象的属性赋值。
自动调用:当您创建类的新实例时,Python会自动调用该__init__()方法。
非强制:虽然常用,但类并不强制必须具有__init__()方法。
无返回值:__init__()不返回值;它返回无。
4.创建对象:类的实例
对象是类的实例。当您创建一个对象时,您实际上是在创建一个遵循类定义的蓝图的唯一实例。
创建实例很简单。您调用类名并传递所需的参数。让我们创建一些动物对象:
cat = Animal("Whiskers", 3)
dog = Animal("Rex", 5)
cat.make_sound("Meow")
dog.make_sound("Woof")
这里,猫和狗是Animal类的对象或实例。它们具有独特的属性(姓名和年龄)并共享通用方法(make_sound)。
5.访问属性
一旦创建了Animal类的对象,我们就可以使用点表示法访问属性。例如,cat.name返回cat实例的名称。
print(cat.name) # Output: Whiskers
6.设置属性的默认值
可以在方法内设置默认值__init__,从而允许某些参数是可选的。
class Animal:
def __init__(self, name, age=2): # Default age set to 2
self.name = name
self.age = age
在构造函数中,age=2设置age属性的默认值。如果创建Animal类的对象时没有指定年龄,则默认为2。
例如,如果使用Animal(“Leo”)创建动物,Leo将被指定为名称,年龄将设置为默认值2。
7.定义子类的属性和方法
子类继承父类的属性和方法,但也可以拥有自己独特的属性。让我们用继承“Animal”类的示例类“Birds”来理解:
class Bird(Animal):
def __init__(self, name, age, can_fly):
super().__init__(name, age)
self.can_fly = can_fly
parrot = Bird("Polly", 3, True)
继承:Bird继承自Animal,用类Bird(Animal)表示。
构造函数重写:Bird有自己的__init__()方法,重写继承的方法。
Super函数:使用super().__init__(name,age)调用父类(Animal)构造函数。
新属性:添加特定于Bird的新属性can_fly。
实例创建:创建一个Bird实例,具有名称、年龄和can_fly属性。
8.类变量与实例变量
Python中的类可以有两种类型的变量–类变量(由所有实例共享)和实例变量(每个实例唯一):
类变量:在类的所有实例之间共享。它们在类内部但在任何方法外部定义,并且对于每个实例都保持相同。
实例变量:对于类的每个实例来说都是唯一的。它们在方法内定义(通常在内__init__),并且每个对象实例可以具有不同的值。
下面是一个使用Animal类来演示类变量和实例变量之间的区别的示例:

在此示例中,kingdom是由的所有实例共享的类变量Animal,而name和species是每个Animal对象唯一的实例变量。
Python中的类是功能强大的工具,可以实现高效且有组织的编程,尤其是在大型项目中。它们允许您将数据和功能封装在一起,使您的代码更加模块化、可重用且易于理解。作为尝试Python编程的新生或学生,掌握课程将显着提高您的编码技能,并为更高级的编程概念打开大门。
本综合教程旨在提供对Python课程的清晰理解,非常适合新生和学生。从创建第一个类到理解继承等高级概念,本文是您学习Python类的首选资源。