第8.11节 Python类中记录实例变量属性的特殊变量__dict__

时间:2023-03-09 00:25:14
第8.11节  Python类中记录实例变量属性的特殊变量__dict__

一、 语法释义

调用方法:实例. __dict__属性

__dict__属性返回的是实例对象中当前已经定义的所有自定义实例变量的名和值,用字典存储,每个元素为一个“实例变量名:值”对,如果某个方法中也新定义了实例变量但还没执行,则该实例变量不会列出。

注意:是实例变量不含特殊变量、不含方法,但包含父类中定义的实例变量。

二、 举例说明

定义Vehicle类和Car类,Vehicle类是父类,Car从Vehicle类继承。在Vehicle类构造方法中定义了实例变量:wheelcount、power,Car类构造方法中定义了oilcostper100km,dirve方法中定义了totaldistance。

类定义后定义了类的实例car,查看实例的属性,可见实例属性中可以看到子类和父类构造方法中定义了的实例变量,drive方法中定义的totaldistance没有,后续实例调用drive方法后就可以通过__dict__看到totaldistance。

三、 案例代码(交互环境之下)及截图

class Vehicle():
def __init__(self,wheelcount,power):
self.wheelcount = wheelcount
self.power = power class Car(Vehicle):
def __init__(self, power,oilcostper100km):
self.oilcostper100km = oilcostper100km
super().__init__(4, power) def drive(self,distance):
try: #如果self.totaldistance未定义则通过异常进行初始化
self.totaldistance += distance
except: self.totaldistance = distance car=Car('汽油发动机',10)
car.__dict__
car.drive(100)
car.__dict__

截屏如下:

第8.11节  Python类中记录实例变量属性的特殊变量__dict__

本节介绍了类的特殊属性变量__dict__,这个特殊变量能看到类对应实例当前以及定义的实例变量及对应值,在程序调试时输出相关信息会非常有用。

老猿Python系列文章用于逐步介绍老猿学习Python后总结的学习经验,这些经验有助于没有接触过Python的程序员可以很容易地进入Python的世界。

欢迎大家批评指正,谢谢大家关注!