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基于Tkinter实现的记事本实例
Jun 17 Python
python中异常报错处理方法汇总
Nov 20 Python
Python 加密的实例详解
Oct 09 Python
TensorFlow在MAC环境下的安装及环境搭建
Nov 14 Python
Python异常对代码运行性能的影响实例解析
Feb 08 Python
Python使用wget实现下载网络文件功能示例
May 31 Python
python 去除二维数组/二维列表中的重复行方法
Jan 23 Python
Python中使用遍历在列表中添加字典遇到的坑
Feb 27 Python
python图形工具turtle绘制国际象棋棋盘
May 23 Python
Python处理时间日期坐标轴过程详解
Jun 25 Python
Virtualenv 搭建 Py项目运行环境的教程详解
Jun 22 Python
python opencv通过按键采集图片源码
May 20 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下MYSQL limit的优化
2008/01/10 PHP
php Notice: Undefined index 错误提示解决方法
2010/08/29 PHP
PHP使用imagick读取PDF生成png缩略图的两种方法
2014/03/20 PHP
php开启与关闭错误提示适用于没有修改php.ini的权限
2014/10/16 PHP
php实现给图片加灰色半透明效果的方法
2014/10/20 PHP
php实现window平台的checkdnsrr函数
2015/05/27 PHP
Javascript 读后台cookie代码
2008/09/15 Javascript
JavaScript中去掉数组中的重复值的实现方法
2011/08/03 Javascript
关于jquery.validate1.9.0前台验证的使用介绍
2013/04/26 Javascript
Js注册协议倒计时的小例子
2013/06/24 Javascript
js处理json以及字符串的比较等常用操作
2013/09/08 Javascript
Node.js下自定义错误类型详解
2016/10/17 Javascript
利用JS屏蔽页面中的Enter按键提交表单的方法
2016/11/25 Javascript
Bootstrap CSS组件之下拉菜单(dropdown)
2016/12/17 Javascript
Vue-Cli中自定义过滤器的实现代码
2017/08/12 Javascript
node前端模板引擎Jade之标签的基本写法
2018/05/11 Javascript
Vue表单及表单绑定方法
2018/09/04 Javascript
微信小程序点击view动态添加样式过程解析
2020/01/21 Javascript
ES11新增的这9个新特性,你都掌握了吗
2020/10/15 Javascript
vue项目如何监听localStorage或sessionStorage的变化
2021/01/04 Vue.js
Python实现的概率分布运算操作示例
2017/08/14 Python
利用python将图片转换成excel文档格式
2017/12/30 Python
Windows下安装Scrapy
2018/10/17 Python
详解pandas安装若干异常及解决方案总结
2019/01/10 Python
Python实现插入排序和选择排序的方法
2019/05/12 Python
python Pillow图像处理方法汇总
2019/10/16 Python
解决Firefox下不支持outerHTML问题代码分享
2014/06/04 HTML / CSS
HTML5 在canvas中绘制文本附效果图
2014/06/23 HTML / CSS
基于html5实现的图片墙效果
2014/10/16 HTML / CSS
DTD的含义以及作用
2014/01/26 面试题
《都江堰》教学反思
2014/02/07 职场文书
美术课外活动总结
2014/07/08 职场文书
军训决心书范文
2015/09/22 职场文书
详解如何使用Node.js实现热重载页面
2021/05/06 Javascript
使用numpy实现矩阵的翻转(flip)与旋转
2021/06/03 Python
Nginx安装配置详解
2022/06/25 Servers