上次我们解读了前半部分代码,这次我们继续来看后面的部分~建筑兔零基础自学python记录29|实战词云可视化项目——分人物阵营词云(上)7-CSDN博客
补充:上次我们是用中国地图作为地图生成的词云,审核图就直接挂了。重新传了才成功的。看来是涉及到了敏感信息,下次不用chinamap作为底图了。
之前我们已经看过两个class定义的内容很像,我们直接来对比下两边代码,左边为尚未解读的代码而右边是已经解读的代码:
#对比内容的网址 https://www.littlediffer.com/
可以看到左边代码主要多的是def get_color_func(self, word)部分,主要目的是把词语指定为单色single color。具体解读:
举例:绿色-孔明、关公
举例:孔明-绿色、关公-绿色
(1)“try except”异常处理
“try except” 是编程中用于异常处理的关键字组合。try
放置可能会引发异常的代码,except
块用于捕获并处理这些异常。
(2)next( )
迭代器中获取下一个元素
next(iterator[, default])
iterator
:必需参数,代表一个迭代器对象。default
:可选参数。如果指定了该参数,当迭代器耗尽(即没有更多元素可供返回)时,next()
函数会返回这个默认值,而不会抛出StopIteration
异常。如果未指定该参数,当迭代器耗尽时,next()
函数会抛出StopIteration
异常。
def __call__(self, word, **kwargs):
return self.get_color_func(word)(word, **kwargs)
- 定义call,输入词、任意参数(
**kwargs
是可变关键字参数) - 调用
get_color_func
根据输入的单词word
来获取对应的颜色函数。 (word, **kwargs)
:调用颜色函数,将word
和**kwargs
作为参数传递给颜色函数,颜色函数会根据自身的逻辑为单词分配颜色,并返回分配的颜色值。
让我们来看一下整段代码究竟在干嘛:
整段代码解读完毕。解读中会发现代码是把人与人之间交流较快的事情,拆开了一步步的完成。出现不理解的代码往往是大脑思维省略了中间的步骤。这也是现阶段我们遇到最长的代码了,努力逐行解读理解,让我们继续学习!