我在一个代码审查中看到了一段代码,有500行,没有任何注释,变量名是a、b、c。
我问开发者:"这是什么意思?"
他说:"我也不知道。这是我三个月前写的。"
这就是"屎山代码"的典型特征。
代码难以理解、难以维护、难以扩展。
什么是好的Python代码?
好的Python代码应该具有以下特征:
- 易于理解
- 易于维护
- 易于测试
- 高效
- 安全
10个Python编程习惯
习惯1:使用有意义的变量名
不好的做法:
a = 10b = 20c = a + b
好的做法:
user_age = 10user_salary = 20total_income = user_age + user_salary
习惯2:添加注释和文档字符串
不好的做法:
def calc(x, y): return x + y
好的做法:
def calculate_sum(x, y): """ 计算两个数的和。 Args: x: 第一个数 y: 第二个数 Returns: 两个数的和 """ return x + y
习惯3:遵循PEP 8风格指南
不好的做法:
def func(a,b,c): return a+b+c
好的做法:
def func(a, b, c): return a + b + c
习惯4:使用列表推导式
不好的做法:
result = []for i in range(10): result.append(i * 2)
好的做法:
result = [i * 2 for i in range(10)]
习惯5:使用异常处理
不好的做法:
value = int(user_input)
好的做法:
try: value = int(user_input)except ValueError: print("输入不是有效的整数")
习惯6:使用上下文管理器
不好的做法:
f = open('file.txt')content = f.read()f.close()
好的做法:
with open('file.txt') as f: content = f.read()
习惯7:避免全局变量
不好的做法:
global_var = 10def func(): global global_var global_var += 1
好的做法:
def func(var): return var + 1
习惯8:使用函数和类来组织代码
不好的做法:
user_name = "Alice"user_age = 30print(user_name, user_age)
好的做法:
class User: def __init__(self, name, age): self.name = name self.age = age def display(self): print(self.name, self.age)user = User("Alice", 30)user.display()
习惯9:编写单元测试
不好的做法:
def add(a, b): return a + bprint(add(1, 2))
好的做法:
import unittestdef add(a, b): return a + bclass TestAdd(unittest.TestCase): def test_add(self): self.assertEqual(add(1, 2), 3)
习惯10:使用类型提示
不好的做法:
def add(a, b): return a + b
好的做法:
def add(a: int, b: int) -> int: return a + b
数据对比
我在一个真实的案例中看到过这样的数据:
某个项目的代码质量对比:
没有遵循编程习惯的代码:
遵循编程习惯的代码:
遵循编程习惯的代码不仅bug更少,而且维护时间也更短。
结语
下次当你写Python代码时,不要只是让代码能运行。
记住:好的代码不仅易于理解,而且易于维护。