前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >复习python第七天

复习python第七天

作者头像
sjw1998
发布2019-09-28 12:56:21
3360
发布2019-09-28 12:56:21
举报
文章被收录于专栏:孤独的S

面向对象:

面向对象编程——Object Oriented Programming,简称OOP,是一种程序设计思想。OOP把对象作为程序的基本单元,一个对象包含了数据和操作数据的函数。

面向过程的程序设计把计算机程序视为一系列的命令集合,即一组函数的顺序执行。为了简化程序设计,面向过程把函数继续切分为子函数,即把大块函数通过切割成小块函数来降低系统的复杂度。

而面向对象的程序设计把计算机程序视为一组对象的集合,而每个对象都可以接收其他对象发过来的消息,并处理这些消息,计算机程序的执行就是一系列消息在各个对象之间传递。

在Python中,所有数据类型都可以视为对象,当然也可以自定义对象。自定义的对象数据类型就是面向对象中的类(Class)的概念。

面向对象的一些常识:

类(Class):

面向对象最重要的概念就是类(Class)和实例(Instance),必须牢记类是抽象的模板,比如Student类,而实例是根据类创建出来的一个个具体的“对象”,每个对象都拥有相同的方法,但各自的数据可能不同。

用来描述具有相同的属性和方法的对象的集合。它定义了该集合中每个对象所共有的属性和方法。对象是类的实例。

类变量:

类变量在整个实例化的对象中是公用的。类变量定义在类中且在函数体之外。类变量通常不作为实例变量使用。

数据成员:

类变量或者实例变量, 用于处理类及其实例对象的相关的数据。

方法重写:

如果从父类继承的方法不能满足子类的需求,可以对其进行改写,这个过程叫方法的覆盖(override),也称为方法的重写。局部变量:定义在方法中的变量,只作用于当前实例的类。

实例变量:

在类的声明中,属性是用变量来表示的。这种变量就称为实例变量,是在类声明的内部但是在类的其他成员方法之外声明的。

继承:

即一个派生类(derived class)继承基类(base class)的字段和方法。继承也允许把一个派生类的对象作为一个基类对象对待。例如,有这样一个设计:一个Dog类型的对象派生自Animal类,这是模拟"是一个(is-a)"关系(例图,Dog是一个Animal)。

实例化:

创建一个类的实例,类的具体对象。

方法:

类中定义的函数。

对象:

通过类定义的数据结构实例。对象包括两个数据成员(类变量和实例变量)和方法。

例子:

代码语言:javascript
复制
class dog():
    #定义一个名字为dog的类
    def __init__(self,name,type):
        self.name = name
        self.type = type

    def what(self):
        print(self.name+"是一只"+self.type)

if __name__ == '__main__':
    do= dog('小黄','金毛')
    dog.what(do)
    do.what()

第一种方法__init__()方法是一种特殊的方法,被称为类的构造函数或初始化方法,当创建了这个类的实例时就会调用该方法,通常都是用这个__init__()来设置类对象的属性。

self 代表类的实例,self 在定义类的方法时是必须有的,虽然在调用时不必传入相应的参数

而那个what()函数就是在类里面定义的类函数,类对象就可以直接调用这个函数来使用类方法。

self代表类的实例,而非类

类的方法与普通的函数只有一个特别的区别——它们必须有一个额外的第一个参数名称, 按照惯例它的名称是 self。

这里可以看得出来self就是一个dog object

创建实例对象:

代码语言:javascript
复制
 do= dog('小黄','金毛')

实例化类时,其他编程语言中一般用关键字 new,但是在 Python 中并没有这个关键字,类的实例化类似函数调用方式。

访问类实例的属性:

您可以使用点号 . 来访问对象的属性。使用如下类的名称访问类变量,也可以用点号 . 来访问类的方法。

数据封装:

面向对象编程的一个重要特点就是数据封装。在上面的dog类中,每个实例就拥有各自的name和type这些数据。我们可以通过函数来访问这些数据,比如打印一个dog的name和type,可以通过调用类的方法来获取实例的属性,这样就可以实现数据的封装。

访问限制

要实现数据封装,就要给数据加访问限制,即把对象的或者称实例的属性封锁起来,在属性名的前面加两个下划线'__',这样类的对象的属性就只能通过内部的函数去调用,外部就不能直接调用类对象的实例的属性。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-07-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 孤独的S 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • self代表类的实例,而非类
  • 数据封装:
    • 访问限制
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档