定义:
实例变量(属性)与类变量(属性)都是类通过实例化创建的对象的数据成员。
实现方法:
类变量在类中定义,并且定义在方法之外,对于实例化的对象来说是公用的。
实例变量是在方法中使用self.name来定义的
引用方式:
类变量的引用方式有两种:类名.变量名 和 对象名.变量名
实例变量的引用方式: 对象名.变量名
实例:
class Employee:
empount = 0
def __init__(self, name, salary):
self.name = name
self.salary = salary
Employee.empount += 1
def displaycount(self):
auto = 3
print("total employee:{}".format(Employee.empount))
obj1 = Employee("lining", 8000)
obj2 = Employee("anta", 10000)
obj1.empount = 100
obj1.displaycount()
print(obj1.empount)
print(Employee.empount)
"""
输出:
total employee:2
100
2
"""
分析:
代码中empount变量是类变量,但 obj1.empount = 100 # 又添加了一个实例变量
所以就出现了类变量名和实例变量名相同的情况,采用实例名的引用方法,会先查找实例变量然后查找类变量,
所以语句:print(obj1.empount) 输出结果是obj1对象添加的一个实例属性,并不是访问的类变量。
从语句:obj1.displaycount( )和print(Employee.empount)可以看出类变量是对象obj1和obj2所共有的。