一 私有属性和私有方法
在实际开发中,对象的某些属性或方法可能只希望在对象的内部使用,而不希望在外部使用,这时候就需要用到私有属性和方法
私有属性就是对象不希望公开的属性
私有方法就是对象不希望公开的方法
在定义私有属性和方法时,在属性名或者方法名前面加上两个下划线,表示该属性或方法为私有属性或方法。
举例:
定义私有属性__age,定义私有方法__secert。
在直接输出属性和调用方法时,由于属性和方法为私有,输出时由于找不到输出属性和调用方法的指向,所以会报错。这样属性和方法就被成功隐藏。
如果想使用私有方法和属性,可以定义一个新的公有方法(此处为aaa方法),将私有方法以调用的形式写入这个方法。这样在调用这个公有方法时,就会以公有方法的身份间接地访问到私有属性和方法了。
输出结果:
二 类属性
类属性就是针对对象定义的属性,使用赋值语句在class关键字下面可以定义类属性,类属性用来定义这个类的相关特性。
举例:定义类属性count,用来添加的工具的个数,每添加一个工具,count加一
三 类方法
类方法就是针对类对象定义的方法,在类方法内部就可以直接访问类属性或调用其他方法。
语法格式:
@classmethod
def 类方法名(cls):
pass
举例:类方法使用的不再是self而是cls,用来声明这是一个类方法:
输出结果:
四 静态方法
静态方法是指在类中封装的方法,这个方法既不需要访问实例属性或实例方法,也不需要访问类属性或类方法,这时候可以将这个方法封装成一个静态方法。
语法格式:
@staticmethod
def 静态方法名():
pass
静态方法由于不受其他类和方法的影响,所以方法名后面的括号为空。
举例:
输出结果:
五 类属性,类方法,静态方法的综合应用举例:游戏设计
应用需求:
1 查看帮助信息
2 查看历史最高分
3 创建游戏对象,开始游戏
分析:定义分数为类属性,帮助菜单不受其他因素影响定义为静态方法,显示游戏最高分使用类属性定义为类方法:
输出结果:
六 单继承模式
单继承模式是指,在子类调用父类的建立对象时,所有的新建对象使用同一个内存地址。
输出结果: