如题,学习Python我遇到最最令我不解得就是这三个知识点.我不是要知道具体代码达到什么效果.而是想知道这样的设计理念解决了具体的什么问题.
针对这三个问题我查过很多资料,但是都没有解决我心中的疑惑,我目前的现状就是看到这三种情况的代码知道是什么意思.但是我却不知道在什么时候应该应用他们.因为很多别写的代码不使用这些方法也没有什么问题.这样这个设计在我看来就是多余的.
请资深专家指点迷津
如题,学习Python我遇到最最令我不解得就是这三个知识点.我不是要知道具体代码达到什么效果.而是想知道这样的设计理念解决了具体的什么问题.
针对这三个问题我查过很多资料,但是都没有解决我心中的疑惑,我目前的现状就是看到这三种情况的代码知道是什么意思.但是我却不知道在什么时候应该应用他们.因为很多别写的代码不使用这些方法也没有什么问题.这样这个设计在我看来就是多余的.
请资深专家指点迷津
翻译的问题,meta被翻译成了元,但是中国人不理解,什么元还方的。
元这个词在中文里没有等价的词汇。实际上它表示对某个事物作用n次,或者说升维。
举例:
学习,这个词什么意思你知道吧,比如学习如何编程
元学习,就是学习如何学习,或者说,学习的方法,方式
编程,就是给计算机写程序
元编程,就是给计算机写一个能自动编程的程序
数据,就是描述某个事物的特性的东西,比如张三有1.8米,这就是数据
元数据,就是描述数据的数据,比如对于人的数据,它有哪些字段(姓名、年龄、单位……,每个数据的类型、范围)
再举一个和计算机无关的升维的例子
比如你得到一幅书法作品,上面盖了一个印章,这是第一个维度,你有了作品,你可以拿给你的朋友一起欣赏。
如果你是这个书法家,你有这个印章,你就来到第二个维度,你可以创作很多书法作品,都盖上这个印章。
如果你是印章的设计者,你就来到了第三个维度,你可以雕刻出很多印章,然后送给很多书法家。
当你所站的维度越高,你对于下面一个维度要做的事情,就占有绝对支配的地位。比如你会设计印章,你就可以盖印章,你能盖印章,你就不愁得不到很多盖了印章的作品。
其实你提出的这个问题也是如此,你希望搞清楚语言设计的动机,这个维度比如何按照语法规则去写程序高,也是一种升维。
如果你理解了上面的,那么
类,这个你能理解,对吧
那么元类,就是表示、操作类的类。
返回函数,这个有很多用处,随便说一个,装饰器模式
我有100个方法,我希望在这个方法的开头加上一个参数检查,结束加上一个日志记录这个函数被调用了
那么如果是一个方法,我可以再写一个函数,然后调用这个函数,在那些函数里写上参数检查、调用、日志的代码
但是100个方法,这么做不但累,而且代码重复,重复的话,就不好维护。
那么我们可以写一个函数,传入你你需要装饰的函数,然后再在这个函数里返回一个新的函数,把参数检查日志加上去。
这样调用装饰后的函数,就相当于调用了你自己写的那个修改的函数
函数修饰符不知道你说的是什么,如果是指装饰符,那么就是我上面说的