zoukankan      html  css  js  c++  java
  • 第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__
    

    截屏如下:
    在这里插入图片描述
    本节介绍了类的特殊属性变量__dict__,这个特殊变量能看到类对应实例当前以及定义的实例变量及对应值,在程序调试时输出相关信息会非常有用。
    老猿Python系列文章用于逐步介绍老猿学习Python后总结的学习经验,这些经验有助于没有接触过Python的程序员可以很容易地进入Python的世界。
    欢迎大家批评指正,谢谢大家关注!

  • 相关阅读:
    CSS盒模型
    js异步加载——defer和async的区别
    href和src的区别
    JS中Null与Undefined的区别
    浅谈Web Workers
    flex布局学习笔记
    Promise
    js数组类型检测
    JavaScript中的遍历
    Autocomplete
  • 原文地址:https://www.cnblogs.com/LaoYuanPython/p/11104844.html
Copyright © 2011-2022 走看看