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使用PIL缩放网络图片并保存的方法
Apr 24 Python
详解在Python程序中使用Cookie的教程
Apr 30 Python
批量将ppt转换为pdf的Python代码 只要27行!
Feb 26 Python
Python中list查询及所需时间计算操作示例
Jun 21 Python
django 信号调度机制详解
Jul 19 Python
Python3使用PySynth制作音乐的方法
Sep 09 Python
python+OpenCV实现车牌号码识别
Nov 08 Python
pytorch+lstm实现的pos示例
Jan 14 Python
python相对企业语言优势在哪
Jun 12 Python
keras实现VGG16 CIFAR10数据集方式
Jul 07 Python
浅析Python 抽象工厂模式的优缺点
Jul 13 Python
Python中Matplotlib的点、线形状、颜色以及绘制散点图
Apr 07 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
ADODB的数据库封包程序库
2006/12/31 PHP
PHP简单实现“相关文章推荐”功能的方法
2014/07/19 PHP
php文件上传类的分享
2017/07/06 PHP
PHP中使用jQuery+Ajax实现分页查询多功能操作(示例讲解)
2017/09/17 PHP
PHP pthreads v3在centos7平台下的安装与配置操作方法
2020/02/21 PHP
一个用js实现控制台控件的代码
2007/09/04 Javascript
prototype与jquery下Ajax实现的差别
2009/09/13 Javascript
javascript 匿名函数的理解(透彻版)
2010/01/28 Javascript
运算符&&的三个不同层次
2013/04/07 Javascript
HTML Color Picker(js拾色器效果)
2013/08/27 Javascript
js返回前一页刷新本页重载页面
2014/07/29 Javascript
jQuery中prop()方法用法实例
2015/01/05 Javascript
前端性能优化及技巧
2016/05/06 Javascript
JS组件Bootstrap Select2使用方法解析
2016/05/30 Javascript
JavaScript中Form表单技术汇总(推荐)
2016/06/26 Javascript
JS正则替换掉小括号及内容的方法
2016/11/29 Javascript
vue.js单页面应用实例的简单实现
2017/04/10 Javascript
ES6深入理解之“let”能替代”var“吗?
2017/06/28 Javascript
layui 数据表格复选框实现单选功能的例子
2019/09/19 Javascript
JS使用正则表达式判断输入框失去焦点事件
2019/10/16 Javascript
vue+elementUI实现简单日历功能
2020/09/24 Javascript
Python检测字符串中是否包含某字符集合中的字符
2015/05/21 Python
深入讲解Python中面向对象编程的相关知识
2015/05/25 Python
Python实现LRU算法的2种方法
2015/06/24 Python
python实现简易云音乐播放器
2018/01/04 Python
Python实现二叉树的常见遍历操作总结【7种方法】
2019/03/06 Python
浅析Python 中几种字符串格式化方法及其比较
2019/07/02 Python
详解Python是如何实现issubclass的
2019/07/24 Python
Python上下文管理器类和上下文管理器装饰器contextmanager用法实例分析
2019/11/07 Python
Python SSL证书验证问题解决方案
2020/01/13 Python
Monica Vinader官网:英国轻奢珠宝品牌
2020/02/05 全球购物
应届大学生的推荐信
2013/11/20 职场文书
2014年会计主管工作总结
2014/12/20 职场文书
圆明园纪录片观后感
2015/06/03 职场文书
Python中可变和不可变对象的深入讲解
2021/08/02 Python
Python使用openpyxl模块处理Excel文件
2022/06/05 Python