Python面向对象class类属性及子类用法分析


Posted in Python onFebruary 02, 2018

本文实例讲述了Python面向对象class类属性及子类用法。分享给大家供大家参考,具体如下:

class类属性

class Foo(object):
  x=1.5
foo=Foo()
print foo.x#通过实例访问类属性
>>>1.5
print Foo.x #通过类访问类属性
>>>1.5
foo.x=1.7  #只改新实例属性,不会改变类属性
print foo.x
>>>1.7
print Foo.x
>>>1.5
foo.x+=0.2 ##只改新实例属性,不会改变类属性
print foo.x
>>>1.9
print Foo.x
>>>1.5
del foo.x ##删除更新的实例属性,默认变为类的属性
print foo.x
>>>1.5
print Foo.x
>>>1.5

class子类

父类:

class AddrBookEntry(object):
  "address book entry class"
  def __init__(self, nm, ph):
    self.name = nm
    self.phone = ph
    print "created instance for:", self.name
  def updatePhone(self, newph):
    self.phone = newph
    print "updated phone# for:", self.name

子类:

当一个类被派生出来,子类就继承了基类的属性。所以EmplAddrBookEntry继承了AddrBookEntry的updatePhone的方法。子类最好自定义自己的构造器,不然基类的构造器会被调用。如果子类重写了基类的构造器,基类的构造器就不会自动调用,除非被显示声明出来。

class EmplAddrBookEntry(AddrBookEntry):
  "employee address book entry class"
  def __init__(self, nm, ph, id, em):##重写基类构造器
    AddrBookEntry.__init__(self, nm, ph)
    self.empid = id
    self.email = em
  def updateEmail(self, newem):
    self.email = newem
    print "updated e-mail address for:", self.name

使用子类:

john = EmplAddrBookEntry("john doe","408-555-1212", 42, "john@spam.doe")
created instance for: john doe
>>> john
<__main__.EmplAddrBookEntry object at 0x02115FD0>
>>> john.name
'john doe'
>>> john.phone
'408-555-1212'
>>> john.email
'john@spam.doe'
>>> john.updatePhone("415-555-1212")
updated phone# for: john doe
>>> john.phone
'415-555-1212'
>>> john.updateEmail("john@doe.spam")
updated e-mail address for: john doe
>>> john.email
'john@doe.spam'

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
Python实现保证只能运行一个脚本实例
Jun 24 Python
Python使用asyncio包处理并发详解
Sep 09 Python
python实现两个文件合并功能
Apr 01 Python
简单了解python 邮件模块的使用方法
Jul 24 Python
Django中create和save方法的不同
Aug 13 Python
NumPy中的维度Axis详解
Nov 26 Python
tensorflow 重置/清除计算图的实现
Jan 19 Python
如何提高python 中for循环的效率
Apr 15 Python
使用opencv中匹配点对的坐标提取方式
Jun 04 Python
基于python代码批量处理图片resize
Jun 04 Python
用python获取txt文件中关键字的数量
Dec 24 Python
基于tensorflow权重文件的解读
May 26 Python
Python网络编程之TCP与UDP协议套接字用法示例
Feb 02 #Python
Python星号*与**用法分析
Feb 02 #Python
Python模块WSGI使用详解
Feb 02 #Python
Python常见字符串操作函数小结【split()、join()、strip()】
Feb 02 #Python
tensorflow中next_batch的具体使用
Feb 02 #Python
Python输出各行命令详解
Feb 01 #Python
Python输出由1,2,3,4组成的互不相同且无重复的三位数
Feb 01 #Python
You might like
PHP XML操作类DOMDocument
2009/12/16 PHP
PHP实现简单实用的分页类代码
2016/04/08 PHP
详解laravel passport OAuth2.0的4种模式
2019/11/04 PHP
JavaScript使用prototype定义对象类型(转)[
2006/12/22 Javascript
JS DOM 操作实现代码
2010/08/01 Javascript
JavaScript学习笔记(二) js对象
2011/10/25 Javascript
formStorage 基于jquery的一个插件(存储表单中元素的状态到本地)
2012/01/20 Javascript
jQuery 三击事件实现代码
2013/09/11 Javascript
json中换行符的处理方法示例介绍
2014/06/10 Javascript
String字符串截取的四种方式总结
2016/11/28 Javascript
setTimeout学习小结
2017/02/08 Javascript
AngularJS 中ui-view传参的实例详解
2017/08/25 Javascript
详解使用路由延迟加载 Angular 模块
2017/10/12 Javascript
JS 中使用Promise 实现红绿灯实例代码(demo)
2017/10/20 Javascript
node vue项目开发之前后端分离实战记录
2017/12/13 Javascript
深入浅析Vue中的slots/scoped slots
2018/04/03 Javascript
对angular2中的ngfor和ngif指令嵌套实例讲解
2018/09/12 Javascript
Vue CL3 配置路径别名详解
2019/05/30 Javascript
vue的三种图片引入方式代码实例
2019/11/19 Javascript
node.js使用stream模块实现自定义流示例
2020/02/13 Javascript
python创建临时文件夹的方法
2015/07/06 Python
python中利用h5py模块读取h5文件中的主键方法
2018/06/05 Python
python实现大战外星人小游戏实例代码
2019/12/26 Python
举例详解HTML5中使用JSON格式提交表单
2015/06/16 HTML / CSS
福克斯租车:Fox Rent A Car
2017/04/13 全球购物
Calphalon美国官网:美国顶级锅具品牌
2020/02/05 全球购物
纪律教育学习心得体会
2014/09/02 职场文书
篮球友谊赛通讯稿
2014/10/10 职场文书
违反交通安全法检讨书
2014/10/24 职场文书
岗位职责范本大全
2015/02/26 职场文书
简单的辞职信模板
2015/05/12 职场文书
离婚答辩状怎么写
2015/05/22 职场文书
运动会主持词大全
2015/07/02 职场文书
2016党员发展对象培训心得体会
2016/01/08 职场文书
Python可视化动图组件ipyvizzu绘制惊艳的可视化动图
2022/04/21 Python
MySQL索引 高效获取数据的数据结构
2022/05/02 MySQL