通过示例揭开 Python 类变量和实例变量的神秘面纱
这个语言为面向对象编程, 也就是通常大家说的OOP这种方式, 提供了一整套非常丰富的功能。在OOP里面, 有两个特别基础的重要方面, 一个是类变量, 另一个则是实例变量。想要写出来的代码更加整洁并且运行效率也高, 那么搞清楚这两种变量的不同之处以及各自该怎么使用, 这简直就是至关重要的一件事情。在这篇文章里, 笔者接下来打算深入地聊一聊关于这种语言的类变量和其实例变量到底是怎么回事, 并且还会通过展示一些具体的实际操作例子, 来给广大读者朋友们清楚地说明一下它们在实际当中究竟是如何去被使用的。类变量所谓类变量, 也就是在某些编程语言里头叫做静态变量的那种东西, 它会在一个类的所有实例之间被大家共享起来。这些个变量是在类的内部,但又不是在那个具体的实例当中, 也不是在那个定义的方法里面去写出来的。它们的主要作用, 就是用来存放那些由整个类共同拥有的数据信息。class Teacher:#变量School 北京大学def __init__(self, name, age, profession):self.name nameself.age ageself.profession profession#创建对象li Teacher(李老师, 30, 语文)wu Teacher(吴老师, 33, 数学)#调用print(学校, li.School)print(学校, wu.School)输出学校 北京大学学校 北京大学在这个例子当中那个空引号包围起来的变量它是一个类里面的变量, 这个类里面的所有个实例都会去共用这个变量。实例变量实例变量对于类的每一个单独出现的对象来说, 它都是属于那个对象唯一的特征。这些变量通常在类的构造函数里面被定义出来。通过这种方式它们能够存储那些因为不同的实例存在而会产生变化的数据信息。class Teacher:def __init__(self, name, age, profession):self.name name # 实例变量self.age age # 实例变量#创建对象li Teacher(李老师, 30, 语文)wu Teacher(吴老师, 33, 数学)#调用print(li.name)print(wu.age)输出李老师33在这个时候, 每一个实例它都会有属于它的“name”和“age”这样的实例变量, 这样一来我们就可以去存储那些对于每个对象来说都是独一无二的信息了, 同时也能够对这些信息进行访问操作。类变量和实例变量的区别「作用域」「修改」「用法」在面向对象编程里有个叫做OOP东西, 它里面有关键的重要部分就是类变量还有实例变量。类变量会去存放那些在所有的实例之间都共用的一份数据内容。至于实例变量, 则是去存放属于每个单独的实例才具有的唯一性数据信息。搞清楚在什么情况下应当去选择使用类变量, 以及什么时候应该去选择使用实例变量这件事, 对于代码本身能不能做到既好维护、又能高效运行而言, 是非常关键的一个要点。