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 合并文件的具体实例
Aug 08 Python
Python读写文件方法总结
Jun 09 Python
使用Python的Django框架结合jQuery实现AJAX购物车页面
Apr 11 Python
python实现在pandas.DataFrame添加一行
Apr 04 Python
python中的文件打开与关闭操作命令介绍
Apr 26 Python
Django框架实现的普通登录案例【使用POST方法】
May 15 Python
django之状态保持-使用redis存储session的例子
Jul 28 Python
Python 图像对比度增强的几种方法(小结)
Sep 25 Python
为什么说Python可以实现所有的算法
Oct 04 Python
实现Python与STM32通信方式
Dec 18 Python
Python 面向对象部分知识点小结
Mar 09 Python
用Python爬虫破解滑动验证码的案例解析
May 06 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
sql注入与转义的php函数代码
2013/06/17 PHP
php fseek函数读取大文件两种方法
2016/10/12 PHP
PHP中引用类型和值类型功能与用法示例
2019/02/26 PHP
PHP dirname功能及原理实例解析
2020/10/28 PHP
自动最大化窗口的Javascript代码
2013/05/22 Javascript
JS实现图片翻书效果示例代码
2013/09/09 Javascript
Javascript学习笔记之 函数篇(三) : 闭包和引用
2014/11/23 Javascript
KnockoutJS 3.X API 第四章之数据控制流component绑定
2016/10/10 Javascript
JavaScript 中Date对象的格式化代码方法汇总
2017/09/06 Javascript
基于JavaScript实现抽奖系统
2018/01/16 Javascript
Vue引用第三方datepicker插件无法监听datepicker输入框的值的解决
2018/01/27 Javascript
jQuery 获取除某指定对象外的其他对象 ( :not() 与.not())
2018/10/10 jQuery
详解Vue中watch对象内属性的方法
2019/02/01 Javascript
bootstrap table插件动态加载表头
2019/07/19 Javascript
详解简单易懂的 ES6 Iterators 指南和示例
2019/09/24 Javascript
js构造函数constructor和原型prototype原理与用法实例分析
2020/03/02 Javascript
使用70行Python代码实现一个递归下降解析器的教程
2015/04/17 Python
tensorflow 中对数组元素的操作方法
2018/07/27 Python
浅谈Python接口对json串的处理方法
2018/12/19 Python
Python File(文件) 方法整理
2019/02/18 Python
Django ORM 自定义 char 类型字段解析
2019/08/09 Python
pytorch实现MNIST手写体识别
2020/02/14 Python
使用python图形模块turtle库绘制樱花、玫瑰、圣诞树代码实例
2020/03/16 Python
python使用pymongo与MongoDB基本交互操作示例
2020/04/09 Python
django和flask哪个值得研究学习
2020/07/31 Python
CSS3 制作旋转的大风车(充满童年回忆)
2013/01/30 HTML / CSS
KIKO比利时官网:意大利彩妆品牌
2017/07/23 全球购物
FILA德国官方网站:来自意大利的体育和街头服饰品牌
2019/07/19 全球购物
Oasis服装官网:时尚女装在线
2020/07/09 全球购物
军神教学反思
2014/02/04 职场文书
程序员求职信
2014/04/16 职场文书
2015年农村党员公开承诺事项
2015/04/28 职场文书
毕业论文答辩稿范文
2015/06/23 职场文书
教你使用pyinstaller打包Python教程
2021/05/27 Python
vue3获取当前路由地址
2022/02/18 Vue.js
Java 超详细讲解十大排序算法面试无忧
2022/04/08 Java/Android