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自定义进程池实例分析【生产者、消费者模型问题】
Sep 19 Python
Python爬虫实现爬取京东手机页面的图片(实例代码)
Nov 30 Python
python距离测量的方法
Mar 06 Python
python如何实现内容写在图片上
Mar 23 Python
使用python Fabric动态修改远程机器hosts的方法
Oct 26 Python
python生成带有表格的图片实例
Feb 03 Python
对python 自定义协议的方法详解
Feb 13 Python
python实现扫描局域网指定网段ip的方法
Apr 16 Python
django框架实现模板中获取request 的各种信息示例
Jul 01 Python
如何基于Python + requests实现发送HTTP请求
Jan 13 Python
python3中使用__slots__限定实例属性操作分析
Feb 14 Python
python实现数据结构中双向循环链表操作的示例
Oct 09 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中ob_start()函数的用法
2013/06/24 PHP
smarty简单入门实例
2014/11/28 PHP
PHP实现限制IP访问及提交次数的方法详解
2017/07/17 PHP
php创建多级目录与级联删除文件的方法示例
2019/09/12 PHP
JavaScript快速检测浏览器对CSS3特性的支持情况
2012/09/26 Javascript
jquery聚焦文本框与扩展文本框聚焦方法
2012/10/12 Javascript
javascript验证身份证完全方法具体实现
2013/11/18 Javascript
javascript引擎长时间独占线程造成卡顿的解决方案
2014/12/03 Javascript
JavaScript 开发工具webstrom使用指南
2014/12/09 Javascript
jQuery中on()方法用法实例
2015/01/19 Javascript
再谈Javascript中的基本类型和引用类型(推荐)
2016/07/01 Javascript
Bootstrap框架结合jQuery仿百度换肤功能实例解析
2016/09/17 Javascript
JavaScript自定义函数实现查找两个字符串最长公共子串的方法
2016/11/24 Javascript
bootstrap table之通用方法( 时间控件,导出,动态下拉框, 表单验证 ,选中与获取信息)代码分享
2017/01/24 Javascript
js canvas实现简单的图像扩散效果
2020/06/28 Javascript
微信小程序保存多张图片的实现方法
2019/03/05 Javascript
Nuxt的路由动画效果案例
2020/11/06 Javascript
Python自动化构建工具scons使用入门笔记
2015/03/10 Python
使用Python的Bottle框架写一个简单的服务接口的示例
2015/08/25 Python
python调用并链接MATLAB脚本详解
2019/07/05 Python
Python是什么 Python的用处
2020/05/26 Python
Python钉钉报警及Zabbix集成钉钉报警的示例代码
2020/08/17 Python
Html5如何唤起百度地图App的方法
2019/01/27 HTML / CSS
Skyscanner波兰:廉价航班
2017/11/07 全球购物
T3官网:头发造型工具
2019/12/26 全球购物
机电职业生涯规划书范文
2014/03/08 职场文书
个人委托书怎么写
2014/04/04 职场文书
大学生党员自我批评思想汇报
2014/10/10 职场文书
意向协议书
2015/01/27 职场文书
2015关于重阳节的演讲稿
2015/03/20 职场文书
终止劳动合同通知书
2015/04/16 职场文书
预防艾滋病宣传活动总结
2015/05/09 职场文书
工作时间证明
2015/06/15 职场文书
小学生反邪教心得体会
2016/01/15 职场文书
《落花生》教学反思
2016/02/16 职场文书
Python基础之Socket通信原理
2021/04/22 Python