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实现堆栈与队列的方法
Jan 15 Python
使用Python脚本将绝对url替换为相对url的教程
Apr 24 Python
Python smallseg分词用法实例分析
May 28 Python
Python使用matplotlib的pie函数绘制饼状图功能示例
Jan 08 Python
详解python while 函数及while和for的区别
Sep 07 Python
django使用haystack调用Elasticsearch实现索引搜索
Jul 24 Python
django之静态文件 django 2.0 在网页中显示图片的例子
Jul 28 Python
Django 实现外键去除自动添加的后缀‘_id’
Nov 15 Python
使用Rasterio读取栅格数据的实例讲解
Nov 26 Python
TensorFlow实现批量归一化操作的示例
Apr 22 Python
Python调用.net动态库实现过程解析
Jun 05 Python
python scipy 稀疏矩阵的使用说明
May 26 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
ThinkPHP中session函数详解
2016/09/14 PHP
php多线程并发实现方法
2016/09/30 PHP
thinkphp5使用无限极分类
2019/02/18 PHP
Thinkphp 框架扩展之应用模式实现方法分析
2020/04/27 PHP
javascript 的Document属性和方法集合
2010/01/25 Javascript
js抽奖实现随机抽奖代码效果
2013/12/02 Javascript
jQuery中offset()方法用法实例
2015/01/16 Javascript
jQuery AjaxUpload 上传图片代码
2016/02/02 Javascript
canvas知识总结
2017/01/25 Javascript
JS实现的Unicode编码转换操作示例
2017/04/28 Javascript
BootStrap daterangepicker 双日历控件
2017/06/02 Javascript
浅谈在fetch方法中添加header后遇到的预检请求问题
2017/08/31 Javascript
JavaScript时间戳与时间日期间相互转换
2017/12/11 Javascript
JS实现的简单折叠展开动画效果示例
2018/04/28 Javascript
mpvue构建小程序的方法(步骤+地址)
2018/05/22 Javascript
Express本地测试HTTPS的示例代码
2018/06/06 Javascript
基于Vue2-Calendar改进的日历组件(含中文使用说明)
2019/04/14 Javascript
微信小程序实现3D轮播图效果(非swiper组件)
2019/09/21 Javascript
在Vue中实现随hash改变响应菜单高亮
2020/03/09 Javascript
vue+iview实现分页及查询功能
2020/11/17 Vue.js
Python 多进程并发操作中进程池Pool的实例
2017/11/01 Python
利用anaconda保证64位和32位的python共存
2021/03/09 Python
Django框架模型简单介绍与使用分析
2019/07/18 Python
基于Django统计博客文章阅读量
2019/10/29 Python
利用OpenCV中对图像数据进行64F和8U转换的方式
2020/06/03 Python
Prometheus开发中间件Exporter过程详解
2020/11/30 Python
CSS3效果:自定义“W”形运行轨迹实例
2017/03/29 HTML / CSS
Mixbook加拿大:照片书,照片卡,剪贴簿,年历和日历
2017/02/21 全球购物
Nike法国官方网站:Nike.com FR
2018/07/22 全球购物
JD Sports西班牙:英国领先的运动服装公司
2020/01/06 全球购物
销售主管的自我评价分享
2014/01/03 职场文书
2014新年元旦活动策划方案
2014/02/18 职场文书
舞蹈专业大学生职业规划范文
2014/03/12 职场文书
大学社团活动总结
2014/04/26 职场文书
离婚起诉书范文2015
2015/05/19 职场文书
2016廉洁从业学习心得体会
2016/01/19 职场文书