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实现在目录中查找指定文件的方法
Nov 11 Python
详解Python中的静态方法与类成员方法
Feb 28 Python
使用Eclipse如何开发python脚本
Apr 11 Python
Python基于pyCUDA实现GPU加速并行计算功能入门教程
Jun 19 Python
django中ORM模型常用的字段的使用方法
Mar 05 Python
Python3 串口接收与发送16进制数据包的实例
Jun 12 Python
如何通过50行Python代码获取公众号全部文章
Jul 12 Python
python能做什么 python的含义
Oct 12 Python
Python线程指南分享
Nov 19 Python
Django admin管理工具TabularInline类用法详解
May 14 Python
Python利用Faiss库实现ANN近邻搜索的方法详解
Aug 03 Python
Python进行区间取值案例讲解
Aug 02 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
php5.3中连接sqlserver2000的两种方法(com与ODBC)
2012/12/29 PHP
解析php session_set_save_handler 函数的用法(mysql)
2013/06/29 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(十五)
2014/06/30 PHP
PHP的mysqli_thread_id()函数讲解
2019/01/24 PHP
jQuery 使用手册(五)
2009/09/23 Javascript
jquery 学习之二 属性相关
2010/11/23 Javascript
读jQuery之八 包装事件对象
2011/06/21 Javascript
namespace.js Javascript的命名空间库
2011/10/11 Javascript
基于jQuery的图片不完全按比例自动缩小
2014/07/11 Javascript
Bootstrap实现水平排列的表单
2016/07/04 Javascript
需要牢记的JavaScript基础知识
2016/09/25 Javascript
bootstrap组件之导航组件使用方法
2017/01/19 Javascript
微信小程序实现星级评价效果
2018/12/28 Javascript
微信小程序 数据缓存实现方法详解
2019/08/26 Javascript
JS动态图片的实现方法完整示例
2020/01/13 Javascript
简单了解前端渐进式框架VUE
2020/07/20 Javascript
[01:37]TI4西雅图DOTA2前线报道 VG拿下首胜教练357给出获胜秘诀
2014/07/10 DOTA
[01:12:44]VG vs Mineski Supermajor 败者组 BO3 第二场 6.6
2018/06/07 DOTA
python开发之thread线程基础实例入门
2015/11/11 Python
Python比较2个时间大小的实现方法
2018/04/10 Python
numpy数组之存取文件的实现示例
2019/05/24 Python
python程序快速缩进多行代码方法总结
2019/06/23 Python
Python基础之变量基本用法与进阶详解
2020/01/03 Python
Django 后台带有字典的列表数据与页面js交互实例
2020/04/03 Python
Python是什么 Python的用处
2020/05/26 Python
详解Python中的编码问题(encoding与decode、str与bytes)
2020/09/30 Python
python使用numpy中的size()函数实例用法详解
2021/01/29 Python
CSS3 函数技巧 用css 实现js实现的事情(clac Counters Tooltip)
2017/08/15 HTML / CSS
萨克斯第五大道精品百货店: Saks Fifth Avenue
2017/04/28 全球购物
Bally巴利英国官网:经典瑞士鞋履、手袋及配饰奢侈品牌
2018/05/07 全球购物
捷克玩具商店:Bambule
2019/02/23 全球购物
2015年超市收银员工作总结
2015/04/25 职场文书
个人维稳承诺书
2015/05/04 职场文书
2015年九一八事变纪念活动实施方案
2015/05/06 职场文书
未来,这5大方向都很适合创业
2019/07/22 职场文书
Python趣味实战之手把手教你实现举牌小人生成器
2021/06/07 Python