Python类的定义、继承及类对象使用方法简明教程


Posted in Python onMay 08, 2015

Python编程中类的概念可以比作是某种类型集合的描述,如“人类”可以被看作一个类,然后用人类这个类定义出每个具体的人——你、我、他等作为其对象。类还拥有属性和功能,属性即类本身的一些特性,如人类有名字、身高和体重等属性,而具体值则会根据每个人的不同;功能则是类所能实现的行为,如人类拥有吃饭、走路和睡觉等功能。具体的形式如下:

# 例:类的概念
class 人类:
  名字 = '未命名' # 成员变量
  def 说话(内容): # 成员函数
    print 内容      # 成员变量赋初始值 

某人 = 人类()    # 定义一个人类对象某人
某人.名字 = "路人甲"
某人.说话  ('大家好')  # 路人甲说话
>>> 大家好!      # 输出

Python中定义和使用类的形式为:class 类名[(父类名)]:[成员函数及成员变量],类名为这个类的名称,而父类名为可选,但定义父类名后,子类则拥有父类的相应属性和方法。在用类定义成对象时,会先调用__init__构造函数,以初始化对象的各属性,类的各属性(成员变量)均可以在构造函数中定义,定义时只要加上对象指针就好了。而在对象销毁时,则会调用__del__析构函数,定义类的成员函数时,必须默认一个变量(类似于C++中的this指针)代表类定义的对象本身,这个变量的名称可自行定义,下面例子将使用self变量表示类对象变量。

# 例:类定义及使用
class CAnimal:
  name = 'unname' # 成员变量 
  def __init__(self,voice='hello'):  # 重载构造函数
    self.voice = voice      # 创建成员变量并赋初始值
  def __del__(self):       # 重载析构函数
    pass        # 空操作
  def Say(self):
    print self.voice

t = CAnimal()    # 定义动物对象t
t.Say()    # t说话
>> hello      # 输出
dog = CAnimal('wow')  # 定义动物对象dog
dog.Say()      # dog说话
>> wow      # 输出

 Python编程中类可以承继父类属性,形式为class 类名(父类),子类可以继承父类的所有方法和属性,也可以重载父类的成员函数及属性,须注意的是子类成员函数若重载父类(即名字相同),则会使用子类成员函数

# 例:类的继承
class CAnimal:
  def __init__(self,voice='hello'): # voice初始化默认为hello
    self.voice = voice
  def Say(self):
    print self.voice
  def Run(self):
    pass  # 空操作语句(不做任何操作)

class CDog(CAnimal):    # 继承类CAnimal
  def SetVoice(self,voice): # 子类增加函数SetVoice
    self.voice = voice
  def Run(self,voice): # 子类重载函数Run
    print 'Running'

bobo = CDog()
bobo.SetVoice('My Name is BoBo!')   # 设置child.data为hello
bobo.Say()
bobo.Run()

>> My Name is BoBo!
>> Running
Python 相关文章推荐
python实现的阳历转阴历(农历)算法
Apr 25 Python
在Django的模型和公用函数中使用惰性翻译对象
Jul 27 Python
python读取oracle函数返回值
Jul 18 Python
Python二叉树定义与遍历方法实例分析
May 25 Python
Python中几种属性访问的区别与用法详解
Oct 10 Python
python 对给定可迭代集合统计出现频率,并排序的方法
Oct 18 Python
python 在屏幕上逐字显示一行字的实例
Dec 24 Python
对python中的装包与解包实例详解
Aug 24 Python
使用jupyter notebook将文件保存为Markdown,HTML等文件格式
Apr 14 Python
Spring http服务远程调用实现过程解析
Jun 11 Python
python和php学习哪个更有发展
Jun 17 Python
python如何构建mock接口服务
Jan 28 Python
python通过imaplib模块读取gmail里邮件的方法
May 08 #Python
Python类定义和类继承详解
May 08 #Python
python使用smtplib模块通过gmail实现邮件发送的方法
May 08 #Python
python通过ftplib登录到ftp服务器的方法
May 08 #Python
python操作sqlite的CRUD实例分析
May 08 #Python
python实现在sqlite动态创建表的方法
May 08 #Python
python查询sqlite数据表的方法
May 08 #Python
You might like
Mysql数据库操作类( 1127版,提供源码下载 )
2010/12/02 PHP
PHP的Yii框架中移除组件所绑定的行为的方法
2016/03/18 PHP
PHP多种序列化/反序列化的方法详解
2017/06/23 PHP
php的RSA加密解密算法原理与用法分析
2020/01/23 PHP
Mootools 1.2教程 类(一)
2009/09/15 Javascript
JavaScript游戏之是男人就下100层代码打包
2010/11/08 Javascript
关于javascript中的typeof和instanceof介绍
2012/12/04 Javascript
关于jQuery对象数据缓存Cache原理以及jQuery.data详解
2013/04/07 Javascript
浅谈关于JavaScript的语言特性分析
2013/04/11 Javascript
javascript中的循环语句for语句深入理解
2014/04/04 Javascript
javascript处理表单示例(javascript提交表单)
2014/04/28 Javascript
javascript中声明函数的方法及调用函数的返回值
2014/07/22 Javascript
js实现刷新iframe的方法汇总
2015/04/27 Javascript
AngularJS基础知识笔记之过滤器
2015/05/10 Javascript
简单实现轮播图效果的实例
2016/07/15 Javascript
ES6使用Set数据结构实现数组的交集、并集、差集功能示例
2017/10/31 Javascript
微信小程序使用scroll-view标签实现自动滑动到底部功能的实例代码
2018/11/09 Javascript
js实现图片上传到服务器和回显
2020/01/19 Javascript
vue项目前端微信JSAPI与外部H5支付相关实现过程及常见问题
2020/04/14 Javascript
[01:19:46]DOTA2-DPC中国联赛 正赛 SAG vs DLG BO3 第一场 2月28日
2021/03/11 DOTA
详细探究Python中的字典容器
2015/04/14 Python
浅谈python配置与使用OpenCV踩的一些坑
2018/04/02 Python
python计算两个矩形框重合百分比的实例
2018/11/07 Python
在Python中定义一个常量的方法
2018/11/10 Python
Pytorch evaluation每次运行结果不同的解决
2020/01/02 Python
Python Json数据文件操作原理解析
2020/05/09 Python
django项目中使用云片网发送短信验证码的实现
2021/01/19 Python
html5 div布局与table布局详解
2016/11/16 HTML / CSS
美国打印机墨水和碳粉购物网站:QuikShip Toner
2018/08/29 全球购物
德国的大型美妆个护电商:Flaconi
2020/06/26 全球购物
装潢设计实习自我鉴定
2013/09/19 职场文书
环保倡议书300字
2014/05/15 职场文书
安全承诺书格式范本
2015/04/28 职场文书
2015年工商局个人工作总结
2015/07/23 职场文书
python基于OpenCV模板匹配识别图片中的数字
2021/03/31 Python
CPU不支持Windows11系统怎么办
2021/11/21 数码科技