Python教程41:面向对象最佳实践

Python教程41:面向对象最佳实践 “代码是写给人看的,顺便让机器执行。” 经过前面的学习,我们掌握了OOP的所有特性。今天总结Python面向对象的最佳实践,帮助你写出更优质的代码。 1. SOLID原则 S - 单一职责原则(Single Responsibility) 一个类只做一件事: 1# 不好:类职责太多 2class User: 3 def __init__(self, name): 4 self.name = name 5 6 def save_to_database(self): 7 """保存用户""" 8 pass 9 10 def send_email(self): 11 """发送邮件""" 12 pass 13 14# 好:职责分离 15class User: 16 def __init__(self, name): 17 self.name = name 18 19class UserRepository: 20 def save(self, user): 21 """保存用户""" 22 pass 23 24class EmailService: 25 def send(self, user): 26 """发送邮件""" 27 pass O - 开闭原则(Open/Closed) 对扩展开放,对修改关闭: 1# 好:使用多态扩展功能 2class Shape: 3 def area(self): 4 pass 5 6class Circle(Shape): 7 def __init__(self, radius): 8 self.radius = radius 9 10 def area(self): 11 return 3.14 * self.radius ** 2 12 13# 添加新形状无需修改现有代码 14class Rectangle(Shape): 15 def __init__(self, width, height): 16 self.width = width 17 self.height = height 18 19 def area(self): 20 return self.width * self.height L - 里氏替换原则(Liskov Substitution) 子类必须能替换父类: ...

2025-12-26 · 4 min · 727 words · 老墨

Python教程09:Python编码规范(PEP 8)

Python 教程 09:Python 编码规范(PEP 8) “代码的阅读次数远远多于编写次数。” PEP 8 是 Python 官方的编码规范,定义了如何写出"Pythonic"的代码。遵循这些规范,你的代码会更专业、更易读、更容易被其他 Python 程序员理解。 1. 什么是 PEP 8 PEP (Python Enhancement Proposal) 是 Python 增强提案。PEP 8 专门定义了 Python 代码的风格指南。 核心思想: 代码更多是被阅读,而不是被编写 一致性很重要 可读性至上 完整文档:https://peps.python.org/pep-0008/ 2. 缩进和空格 使用 4 个空格缩进 1# 正确 2def hello(): 3 print("Hello") 4 if True: 5 print("World") 6 7# 错误:使用Tab或2个空格 8def hello(): 9 print("Hello") # 2个空格,不推荐 续行对齐 1# 方法1:对齐左括号 2result = some_function(argument1, argument2, 3 argument3, argument4) 4 5# 方法2:悬挂缩进 6result = some_function( 7 argument1, argument2, 8 argument3, argument4 9) 10 11# 列表、字典的续行 12my_list = [ 13 1, 2, 3, 14 4, 5, 6, 15] # 末尾逗号是好习惯 3. 空行 类和函数之间 1# 顶层函数和类之间空2行 2def function1(): 3 pass 4 5 6def function2(): 7 pass 8 9 10class MyClass: 11 pass 12 13 14class AnotherClass: 15 pass 方法之间 1class MyClass: 2 # 类中的方法之间空1行 3 def method1(self): 4 pass 5 6 def method2(self): 7 pass 函数内部逻辑分组 1def complex_function(): 2 # 初始化部分 3 x = 10 4 y = 20 5 6 # 计算部分 7 result = x + y 8 9 # 返回结果 10 return result 4. 最大行长度 每行不超过 79 个字符(文档字符串/注释不超过 72 个字符)。 ...

2024-03-02 · 4 min · 748 words · 老墨