December twenty-six my study notes
I know my English is so bad
but I think if I want my English better, I must be using it,so,I will use it write my blog.
today Ilearned something:
0:I learned some words,but until night I almost forget them means all!
someone says "we learning styles of English is wrong!we shouldn't to carm up that chinese means,one language is used for say,so we should use it often!"
maybe after today I can't understand this blog, it's dosn't matter,the point is I hope I could unremitting!!!
1:I study class already a few days,
python makes a class-object when class be defined,instantiation-object just the class-object copy
当一个类被defined的时候Python会创建一个类object,当这个类对象呗实例化的时候,实际就是把这个类的attributes和方法copy一份,放入实例对象中,不同的是,初始化函数的数据在调用的时候是被正常执行的,不仅仅是copy那么简单!在实例化的时候,实例化对象的标识符会被当做一个参数传入self参数中.所以类中的所有函数,包括初始化函数都必须有self参数才能保证参数正常传递,方法和属性才能被正常调用
报错信息显示,在定义__init__函数的时候没有定义参数,但是在调用过程中,接收到一个positional arguments传入,所以报错
在定义函数的时候,第一个参数必须是self事实上是一种约定吧,这里getname方法的name参数起到了self的作用,负责传递参数
在语法定义中,类的方法的第一个参数是用来传递参数的,这个参数叫什么名字无所谓,如上图,在方法getname中,name1参数起到了同样的作用,并且和self在同一个内存地址中.但是为了方便理解,统一规定第一个参数的名字必须是self
__dict__
属性
__dict__
是用来存储对象属性的一个字典,其键为属性名,值为属性的值
__dict__和dir()
还不是很理解要他俩是干啥的
今日作业第一个动动手题目如下
在类中定义一个变量,当类被实例化的时候 +1 当实例化被销毁的时候 -1
我想到在重写__init__里面增加一个变量 每次+1就好了,每次实例化都会调用自动调用一次__init__,所以会自动+1
但是实例被销毁,类怎么可能知道呢?怎么才能-1呢?
实在想不到,百度到了这个
for循环可以不要,能正常-1
这是为什么呢?
__del__是怎样的一个特殊方法呢?
so,垃圾回收会自动调用__del__方法喽,所以计数器生效.所以 类中除了默认包含__init__之外还有__del__用来删除,不管你写不写这个方法,它是默认有的
好像小甲鱼说过,所有的类不论有没有括号去继承一个类,它都是一个什么什么类的子类.
今天的大脑手册:
学习,是一种压缩归纳的过程,在你去理解一个知识点的时候,光看定义你是看不明白的,你需要大把大把的实例去验证,这些实例验证为True的时候,在你脑中就连起一根这个知识点和它的使用方法的桥梁.这是把书读厚的一个过程.一旦你验证过的实例达到一定程度,比如说能顺手拈来解决大部分问题的时候,就要开始一个把书读薄的过程,这是一个压缩归纳的过程,所有的实例除了典型,你要找出所有实例的相同属性和方法,把他们写在一个"类"中.把具体的东西尽可能抽象化.这并不是一个单纯的记忆的过程.这个解答了为什么有些人很努力的在学,但是收效甚微.必须要学会使用你的大脑,大脑是需要雕琢的.
细思极恐吧.人工智能现在也是用这样的方法在学习.这个叫做神经网络.他们用训练人类大脑的方式训练人工智能.人脑一点也不比AI高级!