type
status
date
slug
summary
tags
category
icon
password
类的命名规范
类的命名要使用驼峰体,驼峰体的意思就是,一个函数名称,假设有多个单词组成,单词首个字母要大写
驼峰体例子:PeopleFight,DogeBite,ExchangeBinance,ExchangeOkx
类与实例内存之间的关系
代码
self到底是什么意思?
self到底是个什么鬼?
想明白self什么意思,我们先搞明白,实例化的过程,看下图;
1.d1 = Dog("小哈", 2, "哈士奇")会申请一会内存空间,指向变量名d1
2.__init__(xxx)这个初始化方法需要把接收到参数存下来,存到这个d1的内存空间里
3.传给初始化方法里的name.age,d_type想绑定到d1的空间里,怎么存呢?就得把d1的内存空间传到这个方法里,所以self就是用来接收d1的地址的。d1=Dog("小哈", 2, "哈士奇")相当于Dog(d1,"小哈", 2, "哈士奇"),那self.name=name 也就相当于d1.name =name。我们在实例时没有手动传递d1到Dog类里,只写了d1=Dog("小哈", 2, "哈士奇"),是Python解释器帮你自动干了这个事。
类下面的函数为何第一个参数为self?
到此,我们终于明白,原来self就是代表实例本身。你实例化时python会自动把这个实例本身通过self参数传进去。
你说好吧,假装懂了,但下面这段代码你又不明白了,为何say_hi(self),要写个self呢?
那是因为,你自己也看到了, 这个类的方法其实就是一堆函数对吧。函数被一个实例调用时,它怎么知道是谁在调用它呢? 函数内部要用到一些实例的属性的时候去哪里取呢?比如在say_hi函数里怎么取到d1.name,d1.age?只能你先传递给它。所以这就是为何类下的每个方法第一个参数都要是self,因为是为了接收实例这个对象本身
注意:self在实例化时自动将对象/实例本身传给init,的第一个参数,你也可以给他起个别的名字,但是正常人都不会这么做,因为你瞎改别人就不认识。
打赏
如果您觉得我的内容对你有所帮助,不要吝啬你的一键三连!如果你有能力的话也可以通过下面请我喝杯咖啡~金额您随意~如果对文章内容有任何疑问,欢迎在留言那里加V联系我~
- 作者:Don Mark
- 链接:null/article/38fe832f-9642-4cbf-92b9-7ac01e1417e8
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。