读懂github上的工程代码——各种魔法函数,从__init__开始
很多刚刚接触机器学习的小白,都不可避免地会遇到这样的问题,那就是必须从guthub上下载代码并复现,这着实会令人比较痛苦,因为网上的代码都是一套工程,你根本就不知道从何入手,怎么办呢?我们可以先铺垫一些基础知识,然后再通过一两个项目简单熟悉github上这些工程的结构,最后再把代码啃透去复现,这对于今后我们的科研道路是十分有帮助的。
如果您要继续往下读并且尝试自己的机器学习项目,请确保自己已经熟悉基本的Python语法,简单来说,就是能够利用anaconda搭建一个虚拟环境,会安装里头的各种包,并了解下面的知识:
- 变量和简单的数据类型
- 列表和元组
- if语句和条件分支
- 字典
- 循环
- 函数
- 类
推荐搞一本《Python编程,从入门到实践》,里面的前11章基本够用,可以去敲敲代码练习一下,但是,如果急着上手的话,简单阅读了解一下Python的语法,然后直接上手项目也未尝不可。
类和__init__函数
让我们从类和类的基本概念开始。推荐阅读下面的知乎回答。
Python中 __init__的通俗解释是什么? - 追远·J的回答 - 知乎
https://www.zhihu.com/question/46973549/answer/767530541
常识——不定长参数
推荐这个回答,里面详细地说明了*args和**kwargs。
https://zhuanlan.zhihu.com/p/70649428
而这个回答里是一个举例。
https://www.cnblogs.com/fengmk2/archive/2008/04/21/1163766.html
彻底搞懂Python中所有的魔法函数
推荐阅读这个回答。初看这个表不一定全都搞懂,后面慢慢理解就可以了。
Python中 __init__的通俗解释是什么? - 初识CV的回答 - 知乎
https://www.zhihu.com/question/46973549/answer/1682758202
这里面有几个魔法函数比较难以弄懂,我在这稍微做点批注。
__new__函数
这个函数的详细说明可以参见上面的知乎文章,我在这仅仅对其中的代码做一些批注。
class demoClass:
#这个地方是定义一个变量,用于储存已创建实例的个数,注意它创建在类