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之Python文档
Oct 10 Python
python爬虫之urllib3的使用示例
Jul 09 Python
Python基于sklearn库的分类算法简单应用示例
Jul 09 Python
Python实现按逗号分隔列表的方法
Oct 23 Python
Python爬虫:url中带字典列表参数的编码转换方法
Aug 21 Python
python实现tail -f 功能
Jan 17 Python
使用 Python ssh 远程登陆服务器的最佳方案
Mar 06 Python
python实现UDP协议下的文件传输
Mar 20 Python
python实现数字炸弹游戏程序
Jul 17 Python
Python使用pickle进行序列化和反序列化的示例代码
Sep 22 Python
python 实现性别识别
Nov 21 Python
详解python第三方库的安装、PyInstaller库、random库
Mar 03 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连接Oracle for NT 远程数据库
2006/10/09 PHP
备份mysql数据库的php代码(一个表一个文件)
2010/05/28 PHP
PHP查询数据库中满足条件的记录条数(两种实现方法)
2013/01/29 PHP
php ci框架验证码实例分析
2013/06/26 PHP
php实现按文件名搜索文件的远程文件查找器
2014/05/10 PHP
php跨服务器访问方法小结
2015/05/12 PHP
PHP正则+Snoopy抓取框架实现的抓取淘宝店信誉功能实例
2017/05/17 PHP
禁止选中文字兼容IE、Chrome、FF等
2013/09/04 Javascript
javascript获取元素CSS样式代码示例
2013/11/28 Javascript
node.js中的socket.io的广播消息
2014/12/15 Javascript
Bootstrap 下拉多选框插件Bootstrap Multiselect
2017/01/22 Javascript
浅谈ajax请求不同页面的微信JSSDK问题
2018/02/26 Javascript
Vue实现购物车的全选、单选、显示商品价格代码实例
2019/05/06 Javascript
JavaScript 处理树数据结构的方法示例
2019/06/16 Javascript
js实现开关灯效果
2020/03/30 Javascript
如何使用JS console.log()技巧提高工作效率
2020/10/14 Javascript
python下paramiko模块实现ssh连接登录Linux服务器
2015/06/03 Python
Python之父谈Python的未来形式
2016/07/01 Python
Python获取文件所在目录和文件名的方法
2017/01/12 Python
使用python os模块复制文件到指定文件夹的方法
2019/08/22 Python
Python3标准库之threading进程中管理并发操作方法
2020/03/30 Python
python如何绘制疫情图
2020/09/16 Python
python 实现汉诺塔游戏
2020/11/28 Python
python中pop()函数的语法与实例
2020/12/01 Python
3D动画《斗罗大陆》上线当日播放过亿
2021/03/16 国漫
String这个类型的class为何定义成final?
2012/11/13 面试题
内科护士实习自我鉴定
2013/10/17 职场文书
北体毕业生求职信
2014/02/28 职场文书
构建高效课堂实施方案
2014/03/13 职场文书
铲车司机岗位职责
2014/03/15 职场文书
励志演讲稿3分钟
2014/08/21 职场文书
房地产端午节活动方案
2014/08/24 职场文书
房屋租赁合同补充协议
2014/10/11 职场文书
个人授权委托书范本格式
2014/10/12 职场文书
欢迎新生标语2015
2015/07/16 职场文书
公司财务管理制度
2015/08/04 职场文书