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 相关文章推荐
浅谈MySQL中的触发器
May 05 Python
Python argv用法详解
Jan 08 Python
Python数据类型详解(四)字典:dict
May 12 Python
详解duck typing鸭子类型程序设计与Python的实现示例
Jun 03 Python
利用Python循环(包括while&for)各种打印九九乘法表的实例
Nov 06 Python
python如何实现一个刷网页小程序
Nov 27 Python
浅析python参数的知识点
Dec 10 Python
PyQt5 对图片进行缩放的实例
Jun 18 Python
用python建立两个Y轴的XY曲线图方法
Jul 08 Python
python3多线程知识点总结
Sep 26 Python
Python3操作MongoDB增册改查等方法详解
Feb 10 Python
Python如何读取、写入JSON数据
Jul 28 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实现Socket服务器的代码
2008/04/03 PHP
让php处理图片变得简单 基于gb库的图片处理类附实例代码下载
2011/05/17 PHP
PHP中检查isset()和!empty()函数的必要性
2019/02/13 PHP
jquery 可拖拽的窗体控件实现代码
2010/03/21 Javascript
jquery 跨域访问问题解决方法(笔记)
2011/06/08 Javascript
javascript开发随笔一 preventDefault的必要
2011/11/25 Javascript
JavaScript实现级联菜单的方法
2015/06/29 Javascript
学习JavaScript设计模式之享元模式
2016/01/18 Javascript
JSON字符串和对象相互转换实例分析
2016/06/16 Javascript
AngularJS指令用法详解
2016/11/02 Javascript
基于jQuery实现数字滚动效果
2017/01/16 Javascript
关于Angularjs中跨域设置白名单问题
2018/04/17 Javascript
vue2.0实现移动端的输入框实时检索更新列表功能
2018/05/08 Javascript
layDate插件设置开始和结束时间
2018/11/15 Javascript
Vuerouter的beforeEach与afterEach钩子函数的区别
2018/12/26 Javascript
用Vue.js方法创建模板并使用多个模板合成
2019/06/28 Javascript
three.js如何实现3D动态文字效果
2021/03/03 Javascript
[06:49]2018DOTA2国际邀请赛寻真——VirtusPro傲视群雄
2018/08/12 DOTA
python使用win32com在百度空间插入html元素示例
2014/02/20 Python
用Python实现web端用户登录和注册功能的教程
2015/04/30 Python
举例简单讲解Python中的数据存储模块shelve的用法
2016/03/03 Python
Python 专题三 字符串的基础知识
2017/03/19 Python
详谈Python2.6和Python3.0中对除法操作的异同
2017/04/28 Python
Pandas+Matplotlib 箱式图异常值分析示例
2019/12/09 Python
pytorch实现用CNN和LSTM对文本进行分类方式
2020/01/08 Python
打包PyQt5应用时的注意事项
2020/02/14 Python
Python通过4种方式实现进程数据通信
2020/03/12 Python
不到20行实现Python代码即可制作精美证件照
2020/04/24 Python
Python命名空间及作用域原理实例解析
2020/08/12 Python
python3获取控制台输入的数据的具体实例
2020/08/16 Python
CSS3 制作绽放的莲花采用效果叠加实现
2013/01/31 HTML / CSS
HTML5+CSS3模仿优酷视频截图功能示例
2017/01/05 HTML / CSS
娇韵诗加拿大官网:Clarins加拿大
2017/11/20 全球购物
2014年安全生产大检查方案
2014/05/13 职场文书
法学自荐信
2014/06/20 职场文书
JS setTimeout与setInterval的区别
2022/04/20 Javascript