码迷,mamicode.com
首页 > 编程语言 > 详细

Python面向对象、继承和多态

时间:2019-01-01 14:55:42      阅读:209      评论:0      收藏:0      [点我收藏+]

标签:字母   类型   输入参数   object   不能   class   对象创建   优先   count   

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

用于定义抽象类型---------------------人-----------------------------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面向对象、继承和多态

标签:字母   类型   输入参数   object   不能   class   对象创建   优先   count   

原文地址:https://www.cnblogs.com/hpzyang/p/10204710.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!