🗒️Python面向对象编程3—类的基本语法
00 分钟
2021-7-2
2024-7-23
type
status
date
slug
summary
tags
category
icon
password

类的命名规范

类的命名要使用驼峰体,驼峰体的意思就是,一个函数名称,假设有多个单词组成,单词首个字母要大写
驼峰体例子:PeopleFight,DogeBite,ExchangeBinance,ExchangeOkx
 

类与实例内存之间的关系

notion image

代码

 

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联系我~
notion image
上一篇
Python面向对象编程2—面向过程编程
下一篇
Python面向对象编程4—类属性的应用场景