易学智能

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 3016|回复: 4

[python] Python学习(接力赛5)Python3面对对象简介

[复制链接]

44

主题

139

帖子

382

积分

论坛管理

Rank: 4

积分
382
发表于 2018-9-27 11:51:00 | 显示全部楼层 |阅读模式
本帖最后由 2919005896 于 2018-9-27 16:28 编辑

Python3面向对象简介
类定义
格式
classClassName:
   <statement-1>
   …
   <statement-n>
类实例化之后,便可以使用其属性。
类对象
类对象支持两种操作:属性引用和实例化
属性引用的格式:obj.name
实例如下
图1.1.png
运行结果为:
1
Hello Python
类有一个名为__init__()的特殊方法(构造方法),该方法在类实例化时会自动调用。当然__init__()可以有参数,参数通过__init__()传递到类的实例化操作上。如:
图1.2.png
运行结果为:
1 2
self:代表类的实例而不是类
类的方法和普通函数只有一个特别的区别——必须有一个额外的参数名称:self,
从上面结果可以很明显的看出,self 代表的是类的实例,代表当前对象的地址,self 不是 python 关键字。我们把他换成其他的也是可以正常运行的。

类的方法
在类的内部,使用 def 关键字来定义一个方法
图1.3.png
运行结果为:
小明说:我10岁。
继承
格式:
class子类名(父类名)   
   语句
例子如下(父类是上面的People)
图1.4.png
运行结果为:小明说:我10岁,我在读3年级

类的多继承
格式:Class子类名(父类名1,父类名2,…)   
       语句
  需要注意圆括号中父类的顺序,若是父类中有相同的方法名,而在子类使用时未指定,Python从左至右搜索 即方法在子类中未找到时,从左到右查找父类中是否包含方法。
实例(以下类Student是上面的Student类,有波浪线是因为少空了一行要不然截图截不下):
可以看出调用的speak()方法是Speak类的方法,因为继承的时候把Speak类写在Student的前面
图1.5.png
运行结果为:
我叫小明,我的演讲主题是Python

方法重写
如果父类的方法的功能不能满足需求,可以在子类重写父类的方法。
如下:(super()函数是用来调用父类的一个方法)
图1.6.png
运行结果为:
调用子类方法
调用父类方法
类的私有属性和私有方法   类的私有属性:两个下划线开头,声明该属性为私有,不能在类地外部被使用或直接访问,在类内部的方法中使用时self.__private_attrs   类的私有方法:__private_method:两个下划线开头,声明该方法为私有方法,只能在类的内部调用,不能在类地外部调用。self.__private_methods。



回复

使用道具 举报

1

主题

49

帖子

118

积分

注册会员

Rank: 2

积分
118
发表于 2018-10-8 08:42:07 | 显示全部楼层
谢谢楼主,整理的还行吧
回复

使用道具 举报

3

主题

31

帖子

83

积分

注册会员

Rank: 2

积分
83
发表于 2018-10-8 16:00:41 | 显示全部楼层
学到了不少
回复

使用道具 举报

1

主题

27

帖子

71

积分

注册会员

Rank: 2

积分
71
发表于 2018-10-10 08:34:30 | 显示全部楼层
面向对象还不亲一个!
回复

使用道具 举报

9

主题

47

帖子

123

积分

注册会员

Rank: 2

积分
123
发表于 2018-10-10 08:44:49 | 显示全部楼层
总得来说面对对象在python也是一个比较重要的知识点
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|易学智能

GMT+8, 2024-12-22 13:44 , Processed in 0.034799 second(s), 23 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表