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程序中用csv模块来操作csv文件的基本使用教程
Mar 03 Python
Python彩色化Linux的命令行终端界面的代码实例分享
Jul 02 Python
Python实现删除文件中含“指定内容”的行示例
Jun 09 Python
Django logging配置及使用详解
Jul 23 Python
Python模块future用法原理详解
Jan 20 Python
Python底层封装实现方法详解
Jan 22 Python
Python实现结构体代码实例
Feb 10 Python
OpenCV 使用imread()函数读取图片的六种正确姿势
Jul 09 Python
python下载的库包存放路径
Jul 27 Python
python exit出错原因整理
Aug 31 Python
Python中的xlrd模块使用整理
Jun 15 Python
详解如何用Python实现感知器算法
Jun 18 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支付宝在线支付接口开发教程
2016/09/19 PHP
JSON 和 JavaScript eval使用说明
2010/06/13 Javascript
jquery select动态加载选择(兼容各种浏览器)
2013/02/01 Javascript
加载远程图片时,经常因为缓存而得不到更新的解决方法(分享)
2013/06/26 Javascript
js 表单提交后按钮变灰的实例代码
2013/08/16 Javascript
多选列表框动态添加,移动,删除,全选等操作的简单实例
2014/01/13 Javascript
js中哈希表的几种用法总结
2014/01/28 Javascript
js阻止默认浏览器行为与冒泡行为的实现代码
2016/05/15 Javascript
jQuery 3.0十大新特性最终版发布
2016/07/14 Javascript
关于vue.js过渡css类名的理解(推荐)
2017/04/10 Javascript
微信小程序 跳转传递数据的实例
2017/07/06 Javascript
nodejs 搭建简易服务器的图文教程(推荐)
2017/07/18 NodeJs
Vue组件Draggable实现拖拽功能
2018/12/01 Javascript
使用Vue-cli3.0创建的项目 如何发布npm包
2019/10/10 Javascript
vue使用showdown并实现代码区域高亮的示例代码
2019/10/17 Javascript
JavaScript计算出两个数的差值
2020/03/19 Javascript
详解elementUI中input框无法输入的问题
2020/04/27 Javascript
webpack+vue-cil 中proxyTable配置接口地址代理操作
2020/07/18 Javascript
python实现中文文本分句的例子
2019/07/15 Python
python 矢量数据转栅格数据代码实例
2019/09/30 Python
Python3中configparser模块读写ini文件并解析配置的用法详解
2020/02/18 Python
html5 兼容IE6结构的实现代码
2012/05/14 HTML / CSS
AmazeUI 图标的示例代码
2020/08/13 HTML / CSS
Sunglasses Shop丹麦:欧洲第一的太阳镜在线销售网站
2017/10/22 全球购物
Ralph Lauren拉夫·劳伦美国官网:带有浓郁美国气息的高品味时装品牌
2017/11/01 全球购物
教师党员思想汇报
2014/01/06 职场文书
会议接待欢迎词
2014/01/12 职场文书
行政监察建议书
2014/05/19 职场文书
化妆品活动策划方案
2014/05/23 职场文书
创建文明城市标语
2014/06/16 职场文书
国际金融专业自荐信
2014/07/05 职场文书
4s店活动策划方案
2014/08/25 职场文书
上党课的心得体会
2014/09/02 职场文书
大班上学期个人总结
2015/02/13 职场文书
Axios取消重复请求的方法实例详解
2021/06/15 Javascript
JS前端可视化canvas动画原理及其推导实现
2022/08/05 Javascript