zj3D 1 month ago
parent cc841ffaae
commit c29f01ece2

@ -38,5 +38,6 @@ def main():
word_freqs = Counter(word_count).most_common(10)
print_word_freqs(word_freqs)
if __name__ == '__main__':
main()

@ -31,3 +31,6 @@ def main():
if __name__ == '__main__':
main()
'''
简单的利用函数式风格
'''

@ -1,11 +1,19 @@
{
"cells": [
{
"cell_type": "markdown",
"id": "f5d8e56d",
"metadata": {},
"source": [
"# 降低认知负荷"
]
},
{
"cell_type": "markdown",
"id": "b9a9a366-7fd3-422b-b3bc-b0bc00374da6",
"metadata": {},
"source": [
"# 目标\n",
"## 目标\n",
"- 理解封装方法(函数、类、模块)在代码组织中的作用。\n",
"\n",
"封装方法:\n",

@ -1,5 +1,13 @@
{
"cells": [
{
"cell_type": "markdown",
"id": "8a36de81",
"metadata": {},
"source": [
"# 更优雅的执行流"
]
},
{
"cell_type": "markdown",
"id": "86405617-889a-40c2-a895-7b51fb14b65d",
@ -7,7 +15,7 @@
"source": [
"# 目标\n",
"\n",
"- 在词频统计案例中引入装饰器和函数式编程 。\n",
"- 代码执行流在面向过程模式中包括顺序、选择、循环、函数,引入面向对象后,有了各种魔术方法的特殊执行时机。此外装饰器、生成器和函数风格编程 又规定了一些特定的代码执行流 。\n",
"- 分析这些特性和模式如何进一步优化代码质量(可读性、可维护性、可扩展性、复用性)。\n",
"- 探讨高级特性在案例中的适用性与局限性。"
]
@ -280,10 +288,8 @@
"\n",
"实践练习:\n",
"- 添加日志装饰器,记录每次文件处理的详细信息。\n",
"- 使用 functools.reduce 重写 get_top_words尝试不同排序逻辑。\n",
"\n",
"扩展任务:\n",
"- 添加缓存装饰器,避免重复分词相同文件。\n",
"- 使用 functools.reduce 重写 get_top_words尝试不同排序逻辑。\n",
"- 实现函数式管道,将文件读取、分词、统计串联为单一流。"
]
}

@ -1,5 +1,17 @@
{
"cells": [
{
"cell_type": "markdown",
"id": "1e804515",
"metadata": {
"vscode": {
"languageId": "raw"
}
},
"source": [
"# 按最佳实践写代码"
]
},
{
"cell_type": "raw",
"id": "eccfe49f-de35-4241-90e3-a7095940b61a",

Loading…
Cancel
Save