三种实现有状态函数的方式:
- 基于全局变量:
- 学习成本低,最容易理解;
- 会增加模块级的全局状态,封装性和可维护性最差;
- 基于函数闭包:
- 学习成本适中,可读性较好;
- 适合用来实现变量较少、较简单的有状态函数;
- 创建类来封装状态:
- 学习成本较高;
- 当变量较多、行为较复杂时,类代码比闭包代码更易读,也更容易维护;
Ethan 正在自学 Python,一天,他从网上看到一道和字符串处理有关的练习题:
有一段文字,里面包含各类数字,比如数量、价格等,编写一段代码把文字里的所有数字都用星号替代,实现脱敏效果。
使用 re.sub() 函数:
1 | def mosaic_string(s): |