Python之Class&Object用法详解


Posted in Python onDecember 25, 2019

类和对象的概念很难去用简明的文字描述清楚。从知乎上面的一个回答中可以尝试去理解:

对象:对象是类的一个实例(对象不是找个女朋友),有状态和行为。例如,一条狗是一个对象,它的状态有:颜色、名字、品种;行为有:摇尾巴、叫、吃等。

类:类是一个模板,它描述一类对象的行为和状态。

我觉得有一本书对这个类与对象描述的特别好:Head First Java第2版中文版,大家可以通过Java去学习类和对象。

class

class是用来定义类的。类在面向对象编程里面是很有用的,能够大大提升开发效率和代码维护性。直接上代码学习:

class student(object):
  def print_info(self):
    print("student's info is very important!")

student1 = student()
student1.print_info()

运行结果如图:

Python之Class&Object用法详解

class student():
  def __init__(self,name,gender):
    self.Name = name
    self.Gender = gender
    print("student's name is ",name,' and it is a ',gender)

testman = student("Mike","Male")

这个类可以通过一个__init__ 进行初始化,相当于定义类了。在主代码中,先要进行实例化,即testman = student() 然后才能调用里面的方法。运行结果如下:

Python之Class&Object用法详解

继承

关于继承,就是子类可以继承父类的公有函数。例如:

class Parent:
  def Family(self):
    print("we are family")

class Child(Parent):
  pass

father = Parent()
son = Child()

father.Family()
son.Family()

在这里,Parent 类是父类,Child 类是子类,但是通过定义,继承了父类。所以在后面实例化之后,son 依然可以调用父类的函数。最后的运行结果如下:

Python之Class&Object用法详解

override

当然,子类除了继承,还可以重写父类的函数功能。

class Parent:
  def Family(self):
    print("we are family")

class Child(Parent):
  def Family(self):
    print("hey,i am son")

father = Parent()
son = Child()

father.Family()
son.Family()

在这个例子中,Child 类重写了父类函数里面的Family 函数,最后的运行结果如下:

Python之Class&Object用法详解

super

super是一个超类。这个概念很抽象,但是用例子来说明一下就不会那么抽象了。

class Parent:
  def Family(self):
    print("we are family")

class Child(Parent):
  def Family(self):
    print("hey,i am son")
    super(Child,self).Family()
    print("again, i am son")

father = Parent()
son = Child()

father.Family()
son.Family()

运行结果如下:

从上面的例子很容易看出,super 就是将父类的函数再调用了一次。

Python之Class&Object用法详解

以上这篇Python之Class&Object用法详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python转码问题的解决方法
Oct 07 Python
python中列表和元组的区别
Dec 18 Python
Sublime开发python程序的示例代码
Jan 24 Python
Python实现带参数与不带参数的多重继承示例
Jan 30 Python
Django 登陆验证码和中间件的实现
Aug 17 Python
python的pygal模块绘制反正切函数图像方法
Jul 16 Python
python3通过udp实现组播数据的发送和接收操作
May 05 Python
Python tkinter实现简单加法计算器代码实例
May 13 Python
Python根据指定文件生成XML的方法
Jun 29 Python
python3 简单实现组合设计模式
Jul 02 Python
Python爬虫:从m3u8文件里提取小视频的正确操作
May 14 Python
详解Flask开发技巧之异常处理
Jun 15 Python
python shutil文件操作工具使用实例分析
Dec 25 #Python
使用Python给头像加上圣诞帽或圣诞老人小图标附源码
Dec 25 #Python
如何基于python测量代码运行时间
Dec 25 #Python
python字典setdefault方法和get方法使用实例
Dec 25 #Python
Python 内置变量和函数的查看及说明介绍
Dec 25 #Python
python @propert装饰器使用方法原理解析
Dec 25 #Python
python 消除 futureWarning问题的解决
Dec 25 #Python
You might like
SESSION存放在数据库用法实例
2015/08/08 PHP
数据结构之利用PHP实现二分搜索树
2020/10/25 PHP
JQuery中如何传递参数如click(),change()等具体实现
2013/04/28 Javascript
原生JavaScript实现连连看游戏(附源码)
2013/11/05 Javascript
js中Image对象以及对其预加载处理示例
2013/11/20 Javascript
js加密解密字符串可自定义密码因子
2014/05/13 Javascript
jquery实现从数组移除指定的值
2015/06/24 Javascript
实例详解JavaScript获取链接参数的方法
2016/01/01 Javascript
Google 地图获取API Key详细教程
2016/08/06 Javascript
JS检测数组类型的方法小结
2017/03/14 Javascript
详解使用VUE搭建后台管理系统(vue-cli更新至3.0)
2018/08/22 Javascript
JavaScript常用数组操作方法,包含ES6方法
2020/05/10 Javascript
优雅的处理vue项目异常实战记录
2019/06/05 Javascript
React路由鉴权的实现方法
2019/09/05 Javascript
解决vue项目中出现Invalid Host header的问题
2020/11/17 Javascript
[01:10:58]Spirit vs NB Supermajor小组赛 A组败者组决赛 BO3 第二场 6.2
2018/06/03 DOTA
在 Python 应用中使用 MongoDB的方法
2017/01/05 Python
python3操作微信itchat实现发送图片
2018/02/24 Python
python pandas修改列属性的方法详解
2018/06/09 Python
Python实现基于KNN算法的笔迹识别功能详解
2018/07/09 Python
Python函数装饰器原理与用法详解
2019/08/16 Python
Python使用docx模块实现刷题功能代码
2020/02/13 Python
乐高瑞士官方商店:LEGO CH
2020/08/16 全球购物
网络通讯中,端口有什么含义,端口的取值范围
2012/11/23 面试题
abstract是什么意思
2012/02/12 面试题
《苏珊的帽子》教学反思
2014/04/07 职场文书
2014年单位工作总结范文
2014/11/27 职场文书
2014年绿化工作总结
2014/12/09 职场文书
离职感谢信怎么写
2015/01/22 职场文书
研究生导师推荐信
2015/03/25 职场文书
2015年财务部年度工作总结
2015/05/19 职场文书
MySQL安装后默认自带数据库的作用详解
2021/04/27 MySQL
Python干货实战之八音符酱小游戏全过程详解
2021/10/24 Python
JavaScript实现外溢动态爱心的效果的示例代码
2022/03/21 Javascript
深入讲解Vue中父子组件通信与事件触发
2022/03/22 Vue.js
MySQL分区路径子分区再分区
2022/04/13 MySQL