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编写生成验证码的脚本的教程
May 04 Python
Python内建数据结构详解
Feb 03 Python
Python使用arrow库优雅地处理时间数据详解
Oct 10 Python
python enumerate函数的使用方法总结
Nov 15 Python
对Django中static(静态)文件详解以及{% static %}标签的使用方法
Jul 28 Python
Python环境Pillow( PIL )图像处理工具使用解析
Sep 12 Python
python程序 创建多线程过程详解
Sep 23 Python
Python编程快速上手——Excel到CSV的转换程序案例分析
Feb 28 Python
python爬虫开发之使用python爬虫库requests,urllib与今日头条搜索功能爬取搜索内容实例
Mar 10 Python
基于Python第三方插件实现西游记章节标注汉语拼音的方法
May 22 Python
python3检查字典传入函数键是否齐全的实例
Jun 05 Python
Python txt文件常用读写操作代码实例
Aug 03 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
PHP与Java对比学习日期时间函数
2016/07/03 PHP
WordPress过滤垃圾评论的几种主要方法小结
2016/07/11 PHP
PHP大文件及断点续传下载实现代码
2020/08/18 PHP
javascript 面向对象全新理练之原型继承
2009/12/03 Javascript
boxy基于jquery的弹出层对话框插件扩展应用 弹出层选择器
2010/11/21 Javascript
jquery.messager.js插件导致页面抖动的解决方法
2013/07/14 Javascript
js 剪切板应用clipboardData详细解析
2013/12/17 Javascript
javascript的tab切换原理与效果实现方法
2015/01/10 Javascript
moment.js轻松实现获取当前日期是当年的第几周
2015/02/05 Javascript
jquery插件tytabs.jquery.min.js实现渐变TAB选项卡效果
2015/08/25 Javascript
jQuery Mobile 触摸事件实例
2016/06/04 Javascript
值得分享的JavaScript实现图片轮播组件
2016/11/21 Javascript
node+koa实现数据mock接口的方法
2017/09/20 Javascript
基于Vue开发数字输入框组件
2017/12/19 Javascript
vue父组件点击触发子组件事件的实例讲解
2018/02/08 Javascript
浅谈vue的几种绑定变量的值 防止其改变的方法
2018/03/01 Javascript
seajs下require书写约定实例分析
2018/05/16 Javascript
微信小程序项目实践之九宫格实现及item跳转功能
2018/07/19 Javascript
node.js express捕获全局异常的三种方法实例分析
2019/12/27 Javascript
Python回调函数用法实例详解
2015/07/02 Python
python Django模板的使用方法
2016/01/14 Python
Python3多线程基础知识点
2019/02/19 Python
在Pytorch中使用样本权重(sample_weight)的正确方法
2019/08/17 Python
Python传递参数的多种方式(小结)
2019/09/18 Python
Pandas直接读取sql脚本的方法
2021/01/21 Python
Skyscanner澳大利亚:全球领先的旅游搜索网站
2018/03/24 全球购物
阿联酋彩妆品牌:OUD MILANO
2019/10/06 全球购物
毕业生自我鉴定
2013/11/05 职场文书
人民教师求职自荐信
2014/03/12 职场文书
企业精神口号
2014/06/11 职场文书
2014年维修电工工作总结
2014/11/20 职场文书
中秋节祝酒词
2015/08/12 职场文书
导游词之泉州崇武古城
2019/12/20 职场文书
在K8s上部署Redis集群的方法步骤
2021/04/27 Redis
Python编程编写完善的命令行工具
2021/09/15 Python
Ubuntu18.04下QT开发Android无法连接设备问题解决实现
2022/06/01 Java/Android