在自学python从入门到实践(第二版)中理解不了self.battery = Battery()。我知道类可以赋给一个变量名来实例化,也可以通过类名.属性名= 属性值来定义类属性。不知有哪位大神普及一下我。为什么可以这样把实例当作属性值?解释器遇到这行代码时,是如何具体执行的?
2条回答 默认 最新
- 技术专家团-Plio大咸鱼 2021-09-23 12:31关注
就是说在类的内部,在类的实例调用类方法的时候,会隐藏的将自身传入,作为函数的第一个参数
所以类函数里面第一个参数都是self,这个self就是指代对象
所以当实例b调用b.set()(假定是这个参数)时候,内部实际是接受到这个b作为self的,并把b.battey设置为一个新的Battery类对象,这里的Battery()
就是实例化了一个Battery对象出来
有帮助望采纳~
就和你在外部创建一个新的对象一样,这里就是让另外一个实例的属性指向这个新创建的对象本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 1无用
悬赏问题
- ¥500 52810做蓝牙接受端
- ¥15 基于PLC的三轴机械手程序
- ¥15 多址通信方式的抗噪声性能和系统容量对比
- ¥15 winform的chart曲线生成时有凸起
- ¥15 msix packaging tool打包问题
- ¥15 finalshell节点的搭建代码和那个端口代码教程
- ¥15 Centos / PETSc / PETGEM
- ¥15 centos7.9 IPv6端口telnet和端口监控问题
- ¥20 完全没有学习过GAN,看了CSDN的一篇文章,里面有代码但是完全不知道如何操作
- ¥15 使用ue5插件narrative时如何切换关卡也保存叙事任务记录