提交 db12ef0b 编写于 作者: W wizardforcel

ex17.

上级 9b8f8e3d
......@@ -176,3 +176,32 @@ print("The city for the state 'TX' is: %s" % city)
我希望你也可以正确地键入这个代码,但是当你进入大师副本的下一个阶段时,你会把它变成一个正式的自动测试,你可以运行`pytest`。现在,只要让这个脚本工作,就可以让`Dictionary`类工作,之后你可以在下一个阶段清理它。
## 标注代码
确保我的代码的副本完全一样,并通过测试脚本。然后,您可以开始标注代码,并研究每一行来了解其作用。一个非常好的方式是,编写一个“正式”的自动化测试,并在您工作时标注代码。获取`dictionary_test.py`脚本,并将每个部分转换成一个小型测试函数,然后标注`Dictionary`类。
例如,`test_dictionary.py`中的第一部分测试创建一个字典,并执行一系列`Dictionary.set`调用。我会把它转换成一个`test_set`函数,然后在`dictionary.py`文件中标注`Dictionary.set`函数。当您标注`Dictionary.set`函数时,您必须潜入到`Dictionary.get_slot`函数中,然后是`Dictionary.get_bucket`函数,最后是`Dictionary.hash_key`。这迫使你通过一个测试和有组织的方式,来标注和了解`Dictionary`类的大段代码。
## 总结数据结构
您现在可以总结您在`dictionary.py`中,通过标注代码所学到的内容,并将`dictionary_test.py`文件重写为真正的`pytest`自动测试。您的摘要应该是数据结构的清晰和细微描述。如果你可以把它写在一张纸上,那么你做得很好。并不是所有的数据结构都可以简明扼要地总结出来,但是保持摘要简洁将有助于你记住它。您可以使用图表,图纸,单词,或您能够记住的任何内容。
此摘要的目的是为您提供一组快速注解,您可以“挂载”更多的细节,当您的记忆进行到下一步的时候。摘要不一定包括所有内容,但应该包括一些细节,可以触发您对“标注”阶段的代码的记忆,从而触发您对“复制”阶段的记忆。这被称为“分块”,您可以将更详细的记忆和信息附加到信息的细微碎片。在撰写摘要时记住这一点。少即是多,但太少没有用。
## 记忆摘要
您可以用任何方式记住摘要和带标注的代码,但我将给出一个基本的记忆过程,您可以使用它。老实说,记住复杂的东西是每个人的不断尝试和犯错的过程,但有些技巧有帮助:
+ 确保您有一个纸质的笔记本,以及摘要和代码的打印。
+ 花3分钟,只需阅读摘要并尝试记住它。静静地看着它,大声读出来,然后闭上眼睛,重复你所读的内容,甚至尝试记住纸上的单词的“形状”。听起来很愚蠢,但相信我,它完全奏效。记住你的大脑比你想象的更好。
+ 把摘要翻过来,并尝试从您记住的内容中再次写出来,当您卡住时,将其快速翻过来并查看。在你快速瞥见之后,把摘要翻过来,并尝试完成更多。
+ 一旦从(大部分)记忆中写出了摘要的副本,请使用摘要,花另一个 3 分钟,试图记住带标注的代码。仅仅阅读摘要的一部分,然后再看看代码的相关部分,并尝试记住它。甚至每个函数只能花 3 分钟。
+ 一旦你花时间试图记住带标注的代码,把它翻过去,使用摘要,尝试回忆你笔记本中的代码。同样,当你陷入困境时,快速把标注翻过来并查看。
+ 继续这样做,直到你可以在纸上写出代码的完整副本。您纸上的代码不一定是完美的 Python 代码,但应该非常接近原始代码。
看起来这可能是无法实现,但是当你这么做时,你会感到惊讶。完成此操作后,您也会惊讶于您了解了字典的概念。这不是简单的记忆,而是建立一个概念图,当您尝试自己实现字典时,您可以实际使用它。
> 警告
> 如果你是那种担心记不住任何东西的人,那么这个练习会为你将来带来巨大的帮助。能够遵循流程来记住某些东西,有助于克服任何记忆的挫折。你并不是沉浸在“失败”中,而是可以在坚持中看到缓慢的改进。当你这样做,你会看到改善你的回忆的方式和黑魔法,并且你会做得更好。你只需要相信我,这似乎是一种缓慢的学习方式,但它比其他技术要快得多。
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册