面向对象编程(Object-Oriented Programming,简称OOP)是Python语言的核心特性之一。它允许我们创建具有属性(attribute)和行为(method)的对象,这些对象可以代表现实世界中的实体或者概念。
### 基本概念
#### 类(Class)
- 类是对象的蓝图。它定义了对象的属性(数据)和方法(函数)。
- 类使用`class`关键字定义。
#### 对象(Object)
- 对象是根据类创建的实例。每个对象都有自己的状态(属性值)和行为(方法)。
#### 属性(Attribute)
- 属性是类或对象的数据字段。
#### 方法(Method)
- 方法是与类或对象相关联的函数。
#### 继承(Inheritance)
- 继承是允许我们创建基于现有类的新类。新类将继承现有类的属性和方法。
#### 多态(Polymorphism)
- 多态允许不同类的对象对同一消息做出响应。
#### 封装(Encapsulation)
- 封装是保护对象内部状态(属性)不被外部访问,只能通过定义的方法来访问或修改。
### 创建和使用类
```python
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
def say_hello(self):
print(f"你好,我是{self.name},今年{self.age}岁。")
```
创建对象:
```python
p1 = Person("张三", 30)
p2 = Person("李四", 40)
```
访问对象的属性和方法:
```python
print(p1.name) # 输出:张三
print(p1.age) # 输出:30
p1.say_hello() # 输出:你好,我是张三,今年30岁。
```
### 继承
```python
class Student(Person):
def __init__(self, name, age, grade):
super().__init__(name, age)
self.grade = grade
def study(self):
print(f"{self.name}正在学习。")
```
### 多态
```python
def greet(person):
person.say_hello()
greet(p1) # 输出:你好,我是张三,今年30岁。
greet(p2) # 输出:你好,我是李四,今年40岁。
```
### 封装
通常,我们使用`private`(私有)标识符来表示不应该直接访问的属性和方法。在Python中,通常使用双下划线前缀,如`__name`。
```python
class Car:
def __init__(self, brand, model):
self.__brand = brand
self.__model = model
def get_brand(self):
return self.__brand
def set_brand(self, brand):
self.__brand = brand
```
以上是Python面向对象编程的基本介绍。希望这能帮助你更好地理解Python的面向对象特性。有更多问题,欢迎继续提问。
网友评论