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高并发异步服务器核心库forkcore使用方法
Nov 26 Python
python sys模块sys.path使用方法示例
Dec 04 Python
深入解析Python中的上下文管理器
Jun 28 Python
详解常用查找数据结构及算法(Python实现)
Dec 09 Python
树莓派实现移动拍照
Jun 22 Python
在django中图片上传的格式校验及大小方法
Jul 28 Python
python网络爬虫 CrawlSpider使用详解
Sep 27 Python
Python编译成.so文件进行加密后调用的实现
Dec 23 Python
解决pyqt5异常退出无提示信息的问题
Apr 08 Python
python 串行执行和并行执行实例
Apr 30 Python
通过实例解析python创建进程常用方法
Jun 19 Python
浅析Python中字符串的intern机制
Oct 03 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
PHP4实际应用经验篇(4)
2006/10/09 PHP
dedecms函数分享之获取某一栏目所有子栏目
2014/05/19 PHP
100多行PHP代码实现socks5代理服务器[2]
2016/05/05 PHP
PHP中call_user_func_array回调函数的用法示例
2016/11/26 PHP
谈谈从phpinfo中能获取哪些值得注意的信息
2017/03/28 PHP
微信支付之JSAPI公众号支付详解
2019/05/15 PHP
js 数组的for循环到底应该怎么写?
2010/05/31 Javascript
网页中CDATA标记的说明
2010/09/12 Javascript
基于node.js的快速开发透明代理
2010/12/25 Javascript
JS模拟面向对象全解(一、类型及传递)
2011/07/13 Javascript
div当滚动到页面顶部的时候固定在顶部实例代码
2013/05/27 Javascript
JS实现点击颜色块切换指定区域背景颜色的方法
2015/02/25 Javascript
javaScript基础语法介绍
2015/02/28 Javascript
JavaScript操作Oracle数据库示例
2015/03/06 Javascript
在JavaScript中处理数组之reverse()方法的使用
2015/06/09 Javascript
移动Web中图片自适应的两种JavaScript解决方法
2015/06/18 Javascript
JS操作XML实例总结(加载与解析XML文件、字符串)
2015/12/08 Javascript
给angular加上动画效遇到的问题总结
2016/02/17 Javascript
angular实现IM聊天图片发送实例
2017/05/08 Javascript
Vue 组件间的样式冲突污染
2017/08/31 Javascript
基于Axios 常用的请求方法别名(详解)
2018/03/13 Javascript
vue中实现点击按钮滚动到页面对应位置的方法(使用c3平滑属性实现)
2019/12/29 Javascript
vue路由权限校验功能的实现代码
2020/06/07 Javascript
基于javascript的无缝滚动动画1
2020/08/07 Javascript
详细分析JavaScript中的深浅拷贝
2020/09/17 Javascript
教你用python3根据关键词爬取百度百科的内容
2016/08/18 Python
python绘制铅球的运行轨迹代码分享
2017/11/14 Python
Python基于SMTP协议实现发送邮件功能详解
2018/08/14 Python
pycharm访问mysql数据库的方法步骤
2019/06/18 Python
渗透攻击的测试步骤
2014/06/07 面试题
工作说明书范文
2014/05/07 职场文书
立志成才演讲稿
2014/09/04 职场文书
单位法人授权委托书范本
2014/10/09 职场文书
2015年度信用社工作总结
2015/05/04 职场文书
毕业欢送晚会主持词
2019/06/25 职场文书
用golang如何替换某个文件中的字符串
2021/04/25 Golang