Python面向对象编程精髓:从类、对象到继承,构建复杂系统
发布时间: 2024-06-19 02:24:38 阅读量: 14 订阅数: 15 ![](https://csdnimg.cn/release/wenkucmsfe/public/img/col_vip.0fdee7e1.png)
![](https://csdnimg.cn/release/wenkucmsfe/public/img/col_vip.0fdee7e1.png)
![python最简单代码](https://img-blog.csdnimg.cn/20190919211929142.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDA3NzYzOA==,size_16,color_FFFFFF,t_70)
# 1. Python面向对象编程基础
面向对象编程(OOP)是一种软件开发范式,它将数据和行为封装在称为对象的概念中。对象是具有状态和行为的独立实体。
OOP 的核心概念包括:
- **类:**对象蓝图,定义对象的属性和方法。
- **对象:**类的实例,具有自己的状态和行为。
- **继承:**允许子类从父类继承属性和方法。
- **多态:**允许子类以不同的方式实现父类的方法。
# 2. Python面向对象编程核心概念
### 2.1 类与对象
**类**是对象的蓝图,它定义了对象的属性和方法。**对象**是类的实例,它具有类的属性和方法。
**类定义**
```python
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
def get_name(self):
return self.name
def get_age(self):
return self.age
```
**对象创建**
```python
person = Person("John Doe", 30)
```
**访问属性和方法**
```python
print(person.get_name()) # 输出:"John Doe"
print(person.get_age()) # 输出:30
```
### 2.2 继承与多态
**继承**允许一个类(子类)从另一个类(父类)继承属性和方法。子类可以覆盖父类的方法,并添加新的属性和方法。
**多态**允许子类对象以不同的方式响应相同的操作。例如,一个父类的方法可以被子类的方法覆盖,从而提供不同的行为。
**继承示例**
```python
class Employee(Person):
def __init__(self, name, age, salary):
super().__init__(name, age)
self.salary = salary
def get_salary(self):
return self.salary
```
**多态示例**
```python
person = Person("John Doe", 30)
employee = Employee("Jane Doe", 25, 50000)
print(person.get_name()) # 输出:"John Doe"
print(employee.get_name()) # 输出:"Jane Doe"
print(employee.get_salary()) # 输出:50000
```
### 2.3 封装与抽象
**封装**隐藏对象的内部实现细节,只对外暴露必要的接口。**抽象**定义了对象的接口,而不需要提供实现细节。
**封装示例**
```python
class BankAccount:
def __init__(self, balance):
self.__balance = balance # 私有属性
def get_balance(self):
return self.__balance
def deposit(self, amount):
self.__balance += amount
def withdraw(self, amount):
if amount <= self.__balance:
self.__balance -= amount
else:
raise ValueError("Insufficient funds")
```
**抽象示例**
```python
from abc import ABC, abstractmethod
class Shape(ABC):
@abstractmethod
def get_area(self):
pass
class Circle(Shape):
def __init__(self, radius):
self.radius = radius
def get_area(self):
return math.pi * self.radius ** 2
```
# 3. Python面向对象编程设计模式
### 3.1 创建型模式
创建型模式提供了一种创建对象的方式,使代码更灵活、更可重用。
#### 3.1.1 工厂方法模式
0
0
相关推荐
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)