首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Python中级教程——面向对象

一、什么是面向对象

面向对象程序设计(Object-oriented programming,OOP)不仅指一种程序设计方法,更是一种程序开发方式。

重要的面向对象编程语言包含Common Lisp、Python、C++、Objective-C、Smalltalk、Delphi、Java、Swift)、C#、Perl、Ruby 与 PHP等。

在编程解决问题时,面向对象程序设计开发方式关注的是“谁来做”——即谁来解决问题。

二、面向对象编程中的主要概念

1、类与对象

类(class):定义了一件事物的抽象特点。一般的,类定义了一个事物的属性和它可以做到的行为。编程时,我们所定义的类包含了数据的形式以及对数据的操作。举例来说,“狗”这个类包含了狗的一切基础特征(属性/形式),即所有“狗”都共有的特征或行为,如狗的繁殖、毛皮颜色和吠叫的能力。

通俗地说,类是具有相同属性和方法的对象的集合。“人”可归为一个类,各种动物各有它们所属的类,“大学”可归为一个类,等等。

方法:在类中定义的函数。

在Python中通过关键字class实现类的定义,语法如下:

在块block_class处写入类的成员变量(特征/属性/形式)及函数(操作)。如下是一个类dog的定义及其实例化:

对象(object):是类的实例,即实例化后的类,如上代码中的black_dog就是一个实例化的对象。black_dog是一只具体的狗。dog类是抽象化的狗,指所有的狗。

在上述代码中,可以看到类的方法和普通的函数有一个特别的区别——类的方法必须有一个额外的第一个参数名称,习惯上用self。self代表的是类的实例。

类有一个名为init()的特殊方法(构造方法),该方法在类实例化时会自动调用。其定义如下:

定义一个带构造方法的类:

类的私有属性与私有方法:

__private_attrs:两个下划线开头,声明该属性为私有,不能在类的外部被使用或直接访问。在类内部的方法中使用时self.__private_attrs

__private_method:两个下划线开头,声明该方法为私有方法,只能在类的内部调用 ,不能在类地外部调用。self.__private_methods

代码示例:

执行以上程序输出结果为:

2、继承

继承(inheritance):指通过一个已有的类(称之为父类)定义另外一个类(称之为子类),子类共享父类开放的属性和方法。子类的对象除了是子类的一个实例,还是其父类的一个实例。

示例:

上述代码为单继承。同样的,一个子类也可以继承多个父类。同时,在上述代码中,在子类student中我们重新写了一个speak方法,这样会把父类people中写的speak方法覆盖。如果想重新使用父类的speak方法,可使用如下代码:

3、其他概念

多态(polymorphism):指不同的方法作用于不同对象,可以有不同的解释,产生不同的执行结果。

示例如下:

都是叫,但是叫的表现方式却大不相同。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20190110G0BG3Z00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券
http://www.vxiaotou.com