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的gevent框架的入门教程
Apr 29 Python
python使用xlrd实现检索excel中某列含有指定字符串记录的方法
May 09 Python
python使用正则表达式匹配字符串开头并打印示例
Jan 11 Python
python opencv实现旋转矩形框裁减功能
Jul 25 Python
Python命名空间的本质和加载顺序
Dec 17 Python
pymongo中group by的操作方法教程
Mar 22 Python
python plotly画柱状图代码实例
Dec 13 Python
快速查找Python安装路径方法
Feb 06 Python
numpy库ndarray多维数组的维度变换方法(reshape、resize、swapaxes、flatten)
Apr 28 Python
Pytorch实现图像识别之数字识别(附详细注释)
May 11 Python
详解如何用Python实现感知器算法
Jun 18 Python
Python可视化学习之matplotlib内置单颜色
Feb 24 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正则
2006/07/07 PHP
php中看实例学正则表达式
2006/12/25 PHP
PHP中文乱码解决方案
2015/03/05 PHP
Laravel4中的Validator验证扩展用法详解
2016/07/26 PHP
浅谈php中的循环while、do...while、for、foreach四种循环
2016/11/05 PHP
PHP实现webshell扫描文件木马的方法
2017/07/31 PHP
基于jQuery的Tab选项框效果代码(插件)
2011/03/01 Javascript
JS调用CS里的带参方法实例
2013/08/01 Javascript
iframe子页面获取父页面元素的方法
2013/11/05 Javascript
整理的比较全的event对像在ie与firefox浏览器中的区别
2013/11/25 Javascript
js获取触发事件元素在整个网页中的绝对坐标(示例代码)
2013/12/13 Javascript
编程语言JavaScript简介
2014/10/16 Javascript
jquery使用ul模拟select实现表单美化的方法
2015/08/18 Javascript
jquery实现树形菜单完整代码
2015/12/29 Javascript
Google 地图事件实例讲解
2016/08/06 Javascript
vue使用mint-ui实现下拉刷新和无限滚动的示例代码
2017/11/06 Javascript
react-navigation 如何判断用户是否登录跳转到登录页的方法
2017/12/01 Javascript
微信小程序如何像vue一样在动态绑定类名
2018/04/17 Javascript
结合Vue控制字符和字节的显示个数的示例
2018/05/17 Javascript
webpack4.0 入门实践教程
2018/10/08 Javascript
video.js 一个页面同时播放多个视频的实例代码
2018/11/27 Javascript
详谈Vue.js框架下main.js,App.vue,page/index.vue之间的区别
2020/08/12 Javascript
[06:14]《辉夜杯》外卡赛附加赛 4支战队巡礼
2015/10/23 DOTA
Python pickle类库介绍(对象序列化和反序列化)
2014/11/21 Python
Python实现模拟时钟代码推荐
2015/11/08 Python
浅谈Python处理PDF的方法
2017/11/10 Python
根据DataFrame某一列的值来选择具体的某一行方法
2018/07/03 Python
python自动循环定时开关机(非重启)测试
2019/08/26 Python
python实现图片转字符画的完整代码
2021/02/21 Python
中国最大的团购网站:聚划算
2016/09/21 全球购物
俄罗斯街头服装品牌:Black Star Wear
2017/03/01 全球购物
高校毕业生自我鉴定
2013/10/27 职场文书
写好自荐信的技巧
2013/11/08 职场文书
Golang 如何实现函数的任意类型传参
2021/04/29 Golang
一篇文章带你搞懂Python类的相关知识
2021/05/20 Python
《英雄联盟》2022日蚀、月蚀皮肤演示 黑潮亚索曝光
2022/04/13 其他游戏