Python面向对象 --- 新旧式类私有方法类属性和类方法静态方法
Posted UTHN_B
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python面向对象 --- 新旧式类私有方法类属性和类方法静态方法相关的知识,希望对你有一定的参考价值。
一、Python面向对象中的新旧式类
1)新式类(推荐使用):在定义类时,类后边括号里要继承基类(object)。在python3.x中若没有指定父类,会默认使用的是object作为基类;在python2.x中,若没指定父类,则不会以object作为基类。
2)旧式类(经典类):在定义类时,类后边括号中不用继承object类,甚至不用括号。
3)dir方法是用来查看类的内置方法。
二、私有方法和属性
1)私有属性是对象不希望公开的属性;私有方法是对象不希望公开的方法。在定义私有属性和方法时,在属性或方法名之前添加 __(两个下划线)
2)继承中私有属性和私有方法问题:子类不可以继承父类的私有属性和私有方法
三、类属性和类方法
1)类对象:类是一个特殊的对象,也叫类对象。故类对象也有自己对应的属性和方法,叫做类属性和类方法。
2)类属性:就是给类对象定义的属性;通常用来记录与类相关的特征;不会记录具体对象的特征。在class关键字的下方定义。
3)类方法:针对类对象定义的方法;在类方法内部只可以调用类属性或类方法。定义格式为:@classmethod def 类名(): pass
四、静态方法
1)静态方法:在开发的时候,如果需要在类中封装一个方法;这个方法不需要访问实例属性或者实例方法,也不需要访问类属性或类方法;此时我们可以把这个方法封装为静态方法。定义格式为:@staticmethod def 类名(): pass
五、类对象、类属性、静态方法的综合实例
1)需求:设计一个game类
属性:定义一个属性top_score记录游戏的历史最高分(类属性)
定义一个属性player_name记录当前游戏玩家的玩家姓名(实例属性)
方法:
show_help显示游戏帮助信息(静态方法,自己的参数)
show_top_socre显示历史最高分(类方法,参数为cls)
start_game开始当前玩家的游戏(实例方法,参数为self)
实例总结:
1、实例方法:方法内部需要访问实例属性。
2、类方法:方法内部‘只’访问类属性
3、静态方法:方法内部,不需要访问实例属性和类属性
4、在方法内部,既需要访问实例属性,有需要访问类属性,则可以定义为实例方法
以上是关于Python面向对象 --- 新旧式类私有方法类属性和类方法静态方法的主要内容,如果未能解决你的问题,请参考以下文章
python开发学习-day07(面向对象之多态类的方法反射新式类and旧式类socket编程)
python进阶三(面向对象编程基础)3-1 python中创建类属型
py15 面向对象编程
Python中的面向对象(高级)之私有方法、多继承、多态
python 面向对象专题:私有成员类方法静态方法属性isinstance/issubclass
python 面向对象专题:私有成员类方法静态方法属性isinstance/issubclass