探索 感受 发现 python设计模式的艺术性

知识分享

清明假期的时候,有人从上海回来,成功的把我们小区搞封闭了。导致我在家不是安装电脑,就是在看水浒,或者就是稍微看了一点python知识。

其中最有价值的,或许是阅读了那个《python实现设计模式》的文章,学习了很多。

文章链接:
https://zhuanlan.zhihu.com/p/31700225

这篇推文就是和大家分享:我学完的感受和认识。

过程

作为小白

说实话,我之前不太会写class,我大概也是在学习python后的2~3年后,才渐渐的学会写class,之前看很多大佬的代码,写的非常漂亮,但是我就偏偏把一些大佬的代码写成简单的函数,就是为了看着明白🫡。

但是现在回过头看,真的好蠢,class那么优雅,改写成小函数干嘛😂,其实主要还是看不懂。

逐渐认识

后来自己工作以后,写的代码逻辑越来越复杂,变量也越来越多,各个函数之间相互依靠,导致我如果再写成很多小函数,可能就是给自己找麻烦,因此,尝试把一块代码改写成class,就是想打包起来📦。

打包起来之后,发现只要初始化这个类的开始,就可以把中间的所有过程都处理完。简单,方便,各个数据流、变量还不会污染。

提高自己

后来为了提高自己的编程逻辑,我也在坚持的看一些源码,发现了各种各样的 花式的代码写法。

比如有的把类的各个组建分开写的(这个可以看看陈天奇写的simcse。

还有做一些花式的继承的(我就是看了sentence transformer)。更加麻烦的还有nlp里面的transformer包,这个包里面对class用的更加巧妙,比如什么工厂模式等。

其实这有些东西我在前3个月,我可能都不太清楚。

得益于优秀的中文互联网环境,很多内容花心思找还找不到。就拿我之前看到的工厂模式来说,很多文章写的很不好。

再回退到之前我上大学的时候,看的一些python书,一些作者把 鸭子类型说的,好像是很复杂,现在回过头看看,也就是那样。

质变

在经过我看了不少的源代码之后,我无意间在知乎上看到了这个文章《python实现设计模式》。

其实第一遍、第二遍有的还没看懂,后来在昨晚上我静下心看了看,发现真的是把这个设计模式 讲解的透透的。

里面说的一些思想,其实自己之前都想过,并且也都用代码实现过,只不过自己没注意过;有的更是马上点拨了我,比如transformer的工厂模式:原来是这样:为不同的nlp模型设置相同的tokenize结构、相同的pretrained结构。

我今天下午又看了一遍ransformer的data部分,发现果然如此,代码结构逻辑不过如此。

果然,理论和实践相结合,就很容易把知识点掌握清楚。

发散

我在掌握了这个python设计模式之后,就想到c++也可以创建class,c++的class也可以和python做继承之类的。那么这个思想c++可以用,rust可以用,c也可以用(但是c好像不能创建对象)。我现在已经迫不及待的想用C++试一试了。🤪🤪🤪

总结

好处

那么说了半天,这个设计模式到底是什么呢?

说到底就是一个写代码形式,这个形式可以帮助你减少写代码的行数、健全你的代码逻辑。代码看起来就是结构清楚,有一种一气呵成的感觉。

就像是你写作文一样,作文结构清楚,看着肯定舒服。如果写的一团糟,看着肯定难受。

难点

那么如果现在还是看不懂《python设计模式》,应该怎么办?

其实我觉得没什么,看不懂就看不懂,就慢慢看,后面多看看代码,多去谷歌,肯定会有一天看懂的。看懂之后,发现也就那样。😛

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

yuanzhoulvpi

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值