网站安装php,wordpress手机发留言,门户网站html模板下载,html5视频标签让我们从Python面向对象编程#xff08;OOP#xff09;的基础概念开始#xff0c;逐步深入到继承、多态、特殊方法和运算符重载。 一、类和对象 什么是类和对象#xff1f; - 类#xff08;Class#xff09;#xff1a;类是创建对象的蓝图或模板。它定义了一组属性和方法… 让我们从Python面向对象编程OOP的基础概念开始逐步深入到继承、多态、特殊方法和运算符重载。 一、类和对象 什么是类和对象 - 类Class类是创建对象的蓝图或模板。它定义了一组属性和方法这些属性和方法描述了对象的行为和状态。 - 对象Object对象是类的实例。每个对象都有属于自己的数据和方法。 1、定义类
在Python中使用 class 关键字定义一个类。
class Dog:# 类属性species Canis familiaris# 初始化方法构造函数def __init__(self, name, age):self.name name # 实例属性self.age age # 实例属性# 实例方法def description(self):return f{self.name} is {self.age} years old# 实例方法def speak(self, sound):return f{self.name} says {sound}2、创建对象
创建对象的过程称为实例化。
# 创建一个Dog类的实例
my_dog Dog(Buddy, 3)# 访问实例属性
print(my_dog.name) # 输出: Buddy
print(my_dog.age) # 输出: 3# 调用实例方法
print(my_dog.description()) # 输出: Buddy is 3 years old
print(my_dog.speak(Woof Woof)) # 输出: Buddy says Woof Woof二、继承和多态 继承 继承允许我们定义一个类该类可以继承另一个类的属性和方法。被继承的类称为父类或基类新类称为子类或派生类。 # 定义一个基类
class Animal:def __init__(self, name):self.name namedef speak(self):raise NotImplementedError(Subclass must implement abstract method)# 定义一个派生类
class Dog(Animal):def speak(self):return f{self.name} says Woof Woofclass Cat(Animal):def speak(self):return f{self.name} says Meow多态 多态是指同一个方法在不同的类中有不同的实现。它允许我们在不考虑对象具体类型的情况下使用对象。 animals [Dog(Buddy), Cat(Whiskers)]for animal in animals:print(animal.speak())# 输出:
# Buddy says Woof Woof
# Whiskers says Meow三、 特殊方法和运算符重载 特殊方法 特殊方法也称为魔术方法是Python中以双下划线开头和结尾的方法。这些方法在特定情况下会被自动调用。 常见的特殊方法包括 __init__(self, ...)构造函数在对象初始化时调用。 __str__(self)在使用 print() 函数或 str() 函数时调用返回一个字符串。 __repr__(self)在使用 repr() 函数或调试时调用返回一个字符串。 class Dog:def __init__(self, name, age):self.name nameself.age agedef __str__(self):return f{self.name} is {self.age} years olddef __repr__(self):return fDog(name{self.name}, age{self.age})运算符重载 运算符重载允许我们定义对象如何响应内置运算符。例如我们可以定义两个对象相加时的行为。 class Vector:def __init__(self, x, y):self.x xself.y ydef __add__(self, other):return Vector(self.x other.x, self.y other.y)def __str__(self):return fVector({self.x}, {self.y})v1 Vector(2, 3)
v2 Vector(5, 7)
v3 v1 v2
print(v3) # 输出: Vector(7, 10)总结 通过学习类和对象、继承和多态、以及特殊方法和运算符重载咱可以掌握Python面向对象编程的核心概念。这些知识将帮助咱编写更模块化、可重用和可维护的代码。