Python 类
1. 类的基本概念
类是面向对象编程的核心概念,它是一种用于创建对象的模板。类定义了对象的属性和方法。
1.1 类的定义
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
def say_hello(self):
print(f"你好,我是{self.name},今年{self.age}岁")
1.2 创建对象
# 创建Person类的实例
person1 = Person("张三", 25)
person1.say_hello() # 输出:你好,我是张三,今年25岁
2. 类的特性
2.1 构造函数
__init__方法是类的构造函数- 在创建对象时自动调用
- 用于初始化对象的属性
2.2 实例方法
- 第一个参数必须是
self - 可以访问实例的属性和其他方法
- 通过实例调用
2.3 类方法
class Student:
count = 0 # 类变量
@classmethod
def get_count(cls):
return cls.count
2.4 静态方法
class MathUtils:
@staticmethod
def add(x, y):
return x + y
3. 继承
3.1 基本继承
class Animal:
def __init__(self, name):
self.name = name
def speak(self):
pass
class Dog(Animal):
def speak(self):
return f"{self.name}说:汪汪!"
3.2 多重继承
class A:
def method_a(self):
print("方法A")
class B:
def method_b(self):
print("方法B")
class C(A, B):
pass
4. 封装
4.1 私有属性
class BankAccount:
def __init__(self, balance):
self.__balance = balance # 私有属性
def get_balance(self):
return self.__balance
4.2 属性装饰器
class Person:
def __init__(self, name):
self._name = name
@property
def name(self):
return self._name
@name.setter
def name(self, value):
self._name = value
5. 特殊方法
5.1 常用特殊方法
class Vector:
def __init__(self, x, y):
self.x = x
self.y = y
def __str__(self):
return f"Vector({self.x}, {self.y})"
def __add__(self, other):
return Vector(self.x + other.x, self.y + other.y)
6. 最佳实践
- 遵循 PEP 8 命名规范
- 使用类型注解提高代码可读性
- 编写清晰的文档字符串
- 合理使用继承和组合
- 保持类的职责单一
7. 示例:完整的类实现
from typing import List, Optional
class Student:
"""
学生类,用于管理学生信息
"""
def __init__(self, name: str, age: int, scores: Optional[List[int]] = None):
self.name = name
self.age = age
self.scores = scores or []
def add_score(self, score: int) -> None:
"""添加一个分数"""
self.scores.append(score)
def get_average(self) -> float:
"""计算平均分"""
if not self.scores:
return 0.0
return sum(self.scores) / len(self.scores)
def __str__(self) -> str:
return f"学生:{self.name},年龄:{self.age},平均分:{self.get_average():.2f}"
