本文共 3788 字,大约阅读时间需要 12 分钟。
类(Class)是 Python 面向对象编程(OOP)的核心概念。它用于创建对象,并定义对象的属性和行为。类为对象提供了一个统一的模板,允许多个对象共享相同的属性和方法。
类可以包含以下组成部分:
类属性属于整个类,所有实例共享这些属性。类属性通常用于描述类的共同特征。
示例:
class Dog: species = "Canis familiaris" # 类属性 def __init__(self, name, age): self.name = name # 实例属性 self.age = age# 创建对象dog1 = Dog("Buddy", 3)dog2 = Dog("Lucy", 5)# 访问类属性print(dog1.species) # Canis familiarisprint(dog2.species) # Canis familiaris 实例属性属于特定对象,每个对象都有独立的属性值。
方法是类中定义的函数,用于描述对象的行为。方法通常接受 self 参数,代表当前对象。
示例:
class Dog: def __init__(self, name, age): self.name = name self.age = age def bark(self): print(f"{self.name} says woof!") def get_age(self): return self.age# 创建对象并调用方法dog = Dog("Buddy", 3)dog.bark() # 输出: Buddy says woof!print(dog.get_age()) # 输出: 3 __init__ 方法__init__ 是类的构造方法,用于初始化对象的属性。在实例化时,__init__ 方法会自动调用。
示例:
class Dog: def __init__(self, name, age): self.name = name self.age = agedog = Dog("Buddy", 3)print(dog.name) # 输出: Buddyprint(dog.age) # 输出: 3 self 关键字self 是实例方法中的一个特殊关键字,表示当前对象。它允许方法访问和修改对象的属性。
示例:
class Dog: def __init__(self, name, age): self.name = name self.age = age def greet(self): print(f"Hello, my name is {self.name} and I am {self.age} years old.")dog = Dog("Buddy", 3)dog.greet() # 输出: Hello, my name is Buddy and I am 3 years old. 继承是 OOP 的重要特性。子类可以继承父类的属性和方法,并重写或添加新的方法和属性。
子类继承父类,可以复用父类的代码。
示例:
class Animal: def __init__(self, name): self.name = name def speak(self): print(f"{self.name} makes a sound")class Dog(Animal): pass # Dog继承了Animal的属性和方法# 创建 Dog 类的实例dog = Dog("Buddy")dog.speak() # 输出: Buddy makes a sound 子类可以重写父类的方法,提供自定义行为。
示例:
class Animal: def __init__(self, name): self.name = name def speak(self): print(f"{self.name} makes a sound")class Dog(Animal): def speak(self): print(f"{self.name} barks")# 创建 Dog 类的实例dog = Dog("Buddy")dog.speak() # 输出: Buddy barks super() 函数super() 函数用于调用父类的方法或属性。
示例:
class Dog(Animal): def __init__(self, name, breed): super().__init__(name) self.breed = breed def speak(self): super().speak() print(f"{self.name} barks loudly!")# 创建 Dog 类的实例dog = Dog("Buddy", "Golden Retriever")dog.speak() # 输出: Buddy makes a sound # Buddy barks loudly! 多态允许子类对象在不同情况下展示不同的行为。
示例:
class Animal: def speak(self): raise NotImplementedError("Subclass must implement abstract method")class Dog(Animal): def speak(self): print("Woof!")class Cat(Animal): def speak(self): print("Meow!")def animal_speak(animal): animal.speak()# 创建对象dog = Dog()cat = Cat()# 调用方法animal_speak(dog) # 输出: Woof!animal_speak(cat) # 输出: Meow! 类中的一些特殊方法可以为对象提供额外的功能。
__str__ 方法__str__ 方法返回对象的字符串表示,通常用于 print 或 str() 函数。
示例:
class Dog: def __init__(self, name, age): self.name = name self.age = age def __str__(self): return f"{self.name} is {self.age} years old"dog = Dog("Buddy", 3)print(dog) # 输出: Buddy is 3 years old __repr__ 方法__repr__ 方法返回对象的官方字符串表示,主要用于调试。
示例:
class Dog: def __init__(self, name, age): self.name = name self.age = age def __repr__(self): return f"Dog(name={self.name}, age={self.age})"dog = Dog("Buddy", 3)print(repr(dog)) # 输出: Dog(name=Buddy, age=3) __del__ 方法__del__ 方法在对象被销毁时调用,通常用于释放资源。
示例:
class Dog: def __init__(self, name): self.name = name def __del__(self): print(f"{self.name} is being destroyed")dog = Dog("Buddy")del dog # 输出: Buddy is being destroyed 在 Python 中,类是 OOP 的基础,通过类和对象,程序可以实现模块化、易维护和扩展。类通过封装数据和方法,支持继承、多态和其他 OOP 特性,为程序结构提供了强大的管理能力。类和对象的结合,使得 Python 的面向对象编程更加灵活和高效。
转载地址:http://itlfk.baihongyu.com/