【基础】Python中的类和对象的定义与使用
发布时间: 2024-06-24 11:36:44 阅读量: 82 订阅数: 108
![【基础】Python中的类和对象的定义与使用](https://foruda.gitee.com/images/1704590992897984968/31cf4c81_10826153.jpeg)
# 1. Python中的类和对象的基本概念**
类是Python中用于表示一组具有相似特性和行为的对象的模板。它定义了对象的属性和方法,而对象是类的实例,拥有自己的属性和方法。
类和对象是面向对象编程(OOP)的基本构建块,OOP是一种编程范式,它将数据和行为组织成对象,从而提高代码的可重用性、可维护性和可扩展性。
# 2. 类和对象的定义与创建
### 2.1 类的定义和结构
**类定义**
在 Python 中,类是通过 `class` 关键字定义的。类的定义包含以下部分:
- **类名:**类的名称,必须以大写字母开头。
- **基类(可选):**类继承自的基类,用 `(基类名)` 表示。
- **类体:**类中定义的方法和属性。
**示例:**
```python
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
```
**类结构**
类定义的结构如下:
```
class 类名(基类名):
# 类体
# 方法定义
# 属性定义
```
**类属性**
类属性是属于类的属性,而不是属于类的实例。它们在类定义中定义,并可以通过类名直接访问。
**示例:**
```python
class Person:
species = "Homo sapiens" # 类属性
```
**类方法**
类方法是属于类的函数,而不是属于类的实例。它们可以在类定义中定义,并可以通过类名直接调用。
**示例:**
```python
class Person:
@classmethod
def from_birth_date(cls, birth_date):
# 从出生日期创建 Person 实例
pass
```
### 2.2 对象的创建和初始化
**对象创建**
对象是类的实例,可以通过 `类名()` 语法创建。
**示例:**
```python
person1 = Person("John", 30)
person2 = Person("Mary", 25)
```
**对象初始化**
当创建对象时,会调用类的 `__init__()` 方法进行初始化。`__init__()` 方法接收对象作为第一个参数,并用于设置对象的属性。
**示例:**
```python
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
```
**对象属性**
对象属性是属于对象的属性,而不是属于类的属性。它们可以通过对象名直接访问和修改。
**示例:**
```python
person1.name # 获取 person1 的 name 属性
person1.age = 31 # 修改 person1 的 age 属性
```
# 3. 类和对象的方法和属性
### 3.1 方法的定义和调用
方法是类中定义的函数,用于操作类中的数据或执行特定任务。方法的定义与普通函数类似,但需要在函数名前加上`self`参数,`self`参数代表调用该方法的对象实例。
**方法定义示例:**
```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", 30)
person_name = person.get_name()
person_age = person.get_age()
```
### 3.2 属性的定义和访问
属性是类中定义的变量,用于存储类或对象的数据。属性的定义与普通变量类似,但需要在变量名前加上`self`前缀。
**属性定义示例:**
```python
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
```
**属性访问示例:**
```python
person = Person("John", 30)
person_name = person.name
person_age = person.age
```
**属性类型:**
* **实例属性:**仅属于特定对象实例的属性,在对象创建时初始化。
* **类属性:**属于整个类的属性,在类定义时初始化,所有对象实例共享该属性。
**属性修饰符:**
* **public:**可从类内外访问。
* **protected:**仅可从类及其子类访问。
* **private:**仅可从类内部访问。
**代码块示例:*
0
0