类和实例
类和对象是面向对象编程的两个主要方面。类创建一个新类型,而对象是这个
类的实例,类使用class关键字创建。类的域和方法被列在一个缩进块中,一般函数
也可以被叫作方法。
(1)类的变量:甴一个类的所有对象(实例)共享使用,只有一个类变量的拷
贝,所以当某个对象对类的变量做了改动时,这个改动会反映到其他所有的实例
上。笔者的理解是:其实它就是一个类的全局变量,类实例化后的对象都可以调
用该变量。
(2)对象的变量:由类的每个对象/实例拥有,因此每个对象都有自己对这个域
的一份拷贝,即它们不是共享的,在同一个类的不同实例中,虽然对象的变量有相
同的名称,但是它们互不相关。笔者的理解是:不同的对象调用该变量,其值改变
后互不影响。
属于类级别的变量,在使用时一定要带上类型名称,比如MyClass.count;属于
每个对象级别的变量,在调用时一定要带上self表明属于当前对象,比如self.name。
案例2-11类和实例的使用
class MyClass:count=0name='DefaultName'def __init__(self,name):self.name=nameprint('类的变量是%s\n对象的变量是%s'%(MyClass.name,self.name))def setCount(self,count):self.count=countdef getCount(self):return self.countif __name__=='__main__':cls=MyClass('lisi')cls.setCount(10)print('对象的count=%d'%cls.getCount())
输出结果
类的变量是DefaultName
对象的变量是lisi
对象的count=10
__init__方法属于Python语言的构造函数,一个类只能有一个一__init__方法,用
于初始化类及其变量。
通过对象的setCount()、getCount()函数处理它的变量。