Python面向对象继承和多态

Posted 琥珀主yang

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python面向对象继承和多态相关的知识,希望对你有一定的参考价值。

面向对象变成的基本思想:类和实例

用于定义抽象类型---------------------人-----------------------------class  Person(object):------------------数据封装class Person(object):

                                                                                                    pass                                                                 def __init__(self,name):

                                                                                                                                                                                 self.name = name

实例根据累的定义被创建出来---------小明、小红-----------------p1 = Person()------------------------------p1 = Person(‘xiaoming‘)

                                                                                                p2 = Person()                                    p2 = Person(‘xiaohong‘)

(1)类关键字class,类名以大写字母开头,创建实例使用类名+()

(2)类属性只调用一次(和实例化多少次没有关系);__init__()方法中的属性是实例属性,每次实例化一次就调用一次

(3)实例小明、小红除了地址不一样意外,没有什么其他不同,现实世界中区分小明、小红要依靠他们各自的名字、性别、生日等属性,所以可以在类中的__init__方法中添加属性name,在实例化时输入参数,然后取值p1.name就可以了

(4)__init__()方法的第一个参数必须是self,后续参数自由指定,实际情况需要传入什么参数就定义什么参数,和定义函数没有任何区别

(5)__init__()方法中,只有以双下划线开头__xxx的属性不能直接被外部访问,预定义属性通常用__xxx__表示,作为预留字段

(6)类是模板,实例是根据模板创建的对象,所以对象创建完以后,无论在外部怎么改变对象的属性和方法,模板中的数据是完全不受影响的。

(7)实例属性每个实例各自拥有,互相独立,模板属性有且仅有一份,所有实例共同拥有

(8)模板属性和实例属性重名时,实例属性优先级高(注意:一般实例属性方法和模板属性方法名称不要定义一样)

(9)私有类属性和实例属性不能在外部用类和实例直接访问,但是可以在内部__init__方法中print私有类属性Person.__count和实例属性self.__name,这样就可以访问了

(10)实例和类中的属性调用方式:实例p1.属性,,实例p1.方法,,类Person.属性,,类Person.方法

在class中第一的全部是实例方法,实例方法第一个参数self是实力本身

(11)实例方法:def get_grade(self):,第一个参数为self,方法中可以直接调用实例属性,,调用实例方法必须在实例上调用

(12)类方法:@classmethod,参数为cls表示类本身,类方法在类上调用

 

以上是关于Python面向对象继承和多态的主要内容,如果未能解决你的问题,请参考以下文章

Python 面向对象(创建类和对象,面向对象的三大特性是指:封装继承和多态,多态性)

Python面向对象继承和多态

Python入门-6面向对象编程:07面向对象三大特征(封装继承多态)-继承

python面向对象(封装,继承,多态)

Python入门之面向对象的多态和继承

python 面向对象四 继承和多态