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编写Linux系统守护进程实例
Feb 03 Python
Python实现的文本简单可逆加密算法示例
May 18 Python
python爬取淘宝商品详情页数据
Feb 23 Python
Python 3.7新功能之dataclass装饰器详解
Apr 21 Python
详解Django中CBV(Class Base Views)模型源码分析
Feb 25 Python
django框架模板语言使用方法详解
Jul 18 Python
解决python 3 urllib 没有 urlencode 属性的问题
Aug 22 Python
使用PyQt5实现图片查看器的示例代码
Apr 21 Python
python3爬虫中引用Queue的实例讲解
Nov 24 Python
Django-celery-beat动态添加周期性任务实现过程解析
Nov 26 Python
python实现计算器简易版
Dec 17 Python
Python中基础数据类型 set集合知识点总结
Aug 02 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
抓取YAHOO股票报价的类
2009/05/15 PHP
php正则表达式(regar expression)
2011/09/10 PHP
深入array multisort排序原理的详解
2013/06/18 PHP
php获取微信openid方法总结
2019/10/10 PHP
如何在centos8自定义目录安装php7.3
2019/11/28 PHP
PHP7移除的扩展和SAPI
2021/03/09 PHP
FileUpload上传图片(图片不变形)
2010/08/05 Javascript
JS实现淘宝幻灯片效果的实现方法
2013/03/22 Javascript
a标签click和href执行顺序探讨
2014/06/23 Javascript
JS实现图片放大镜效果的方法
2015/02/27 Javascript
Node.js实用代码段之获取Buffer对象字节长度
2016/03/17 Javascript
Vue如何引入远程JS文件
2017/04/20 Javascript
详解Angular路由之路由守卫
2018/05/10 Javascript
Vue 实时监听窗口变化 windowresize的两种方法
2018/11/06 Javascript
详解jenkins自动化部署vue
2019/05/14 Javascript
JavaScript HTML DOM元素 节点操作汇总
2019/07/29 Javascript
深入探索VueJS Scoped CSS 实现原理
2019/09/23 Javascript
vue遍历对象中的数组取值示例
2019/11/07 Javascript
vuejs实现下拉框菜单选择
2020/10/23 Javascript
星球大战与Python之间的那些事
2016/01/07 Python
使用Python的Tornado框架实现一个Web端图书展示页面
2016/07/11 Python
Python读取数据集并消除数据中的空行方法
2018/07/12 Python
python利用插值法对折线进行平滑曲线处理
2018/12/25 Python
python 协程 gevent原理与用法分析
2019/11/22 Python
python中np是做什么的
2020/07/21 Python
三只松鼠官方旗舰店:全网坚果销售第1
2017/11/25 全球购物
意大利灯具购物网站:Lampade.it
2018/10/18 全球购物
美国摩托车头盔、零件、齿轮及配件商店:Cycle Gear
2019/06/12 全球购物
儿科主治医生个人求职信
2013/09/23 职场文书
家居装修公司创业计划书范文
2014/03/20 职场文书
离职保密承诺书
2014/05/28 职场文书
运动员获奖感言
2014/08/15 职场文书
一年级下册数学教学反思
2016/02/16 职场文书
六年级情感作文之500字
2019/10/23 职场文书
Python调用腾讯API实现人脸身份证比对功能
2022/04/04 Python
避坑之 JavaScript 中的toFixed()和正则表达式
2022/04/19 Javascript