类和对象是 Python 中面向对象编程 (OOP) 的基石。类充当对象的蓝图,而对象是类的实例。通过理解这些概念,开发人员可以创建灵活、可重用且易于维护的代码。
类
- 类是一个用户定义的类型,它封装了数据和方法。
- 一个类的实例对应于一个对象。
- 类由
class
关键字声明,后跟类名。 - 类包含数据成员 (属性) 和方法 (操作)。
对象
- 对象是类的实例。
- 对象引用类中的属性和方法。
- 对象是用
class
关键字创建的。 - 通过句点运算符 (.) 访问对象的属性和方法。
类的创建
示例:
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
该代码创建一个名为 Person
的类,它有一个构造函数 __init__
,它为新创建的对象设置 name
和 age
属性。
对象的创建
示例:
person1 = Person("John", 30)
该代码创建了一个名为 person1
的 Person
类的对象,并将其 name
和 age
属性分别设置为 "John" 和 30。
类的方法
类方法是对象可以调用的函数。它们被定义为类中的函数,并使用 def
关键字声明。
示例:
class Person:
def get_info(self):
return f"{self.name} is {self.age} years old."
该代码创建了一个名为 get_info()
的方法,它返回对象的 name
和 age
属性。
类属性
类属性是与类本身关联的数据成员。它们存储在类中,而不是在单个对象中。
示例:
class Person:
species = "Homo sapiens"
该代码创建了一个名为 species
的类属性,它存储了所有 Person
对象的物种。
继承
继承允许一个类从另一个类 (父类) 继承其属性和方法。子类具有父类的所有功能,并且可以定义自己独特的属性和方法。
示例:
class Employee(Person):
def get_salary(self):
return 1000
该代码创建了一个名为 Employee
的子类,它从 Person
类继承了 name
和 age
属性。还定义了一个 get_salary()
方法,用于返回员工的工资。
多态
多态允许具有相同父类的不同类型对象对同一方法做出不同的响应。它使开发人员可以编写更灵活和可重用的代码。
示例:
class Animal:
def make_sound(self):
raise NotImplementedError()
class Dog(Animal):
def make_sound(self):
return "Woof!"
class Cat(Animal):
def make_sound(self):
return "Meow!"
该代码创建了一个 Animal
基类,它具有一个 make_sound()
方法。然后创建两个子类 Dog
和 Cat
,它们都覆盖了 make_sound()
方法并返回不同的声音。
理解 Python 中的类与对象对于开发可重用、灵活且易于维护的代码至关重要。通过掌握这些概念,开发人员可以创建复杂应用程序并提高其代码质量。