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 splitlines使用技巧
Sep 06 Python
使用PYTHON接收多播数据的代码
Mar 01 Python
Python学习笔记_数据排序方法
May 22 Python
Python中的条件判断语句与循环语句用法小结
Mar 21 Python
Python做文本按行去重的实现方法
Oct 19 Python
利用python批量给云主机配置安全组的方法教程
Jun 21 Python
Django如何实现上传图片功能
Aug 16 Python
Django对接支付宝实现支付宝充值金币功能示例
Dec 17 Python
python 浅谈serial与stm32通信的编码问题
Dec 18 Python
浅谈Python中re.match()和re.search()的使用及区别
Apr 14 Python
PyQt5结合matplotlib绘图的实现示例
Sep 15 Python
Python语法学习之进程的创建与常用方法详解
Apr 08 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中文字符串截取函数
2013/11/12 PHP
windows7下安装php的php-ssh2扩展教程
2014/07/04 PHP
谈谈php对接芝麻信用踩的坑
2016/12/01 PHP
JavaScript 类的定义和引用 JavaScript高级培训 自定义对象
2010/04/27 Javascript
jQuery实现的类flash菜单效果代码
2010/05/17 Javascript
动感效果的TAB选项卡jquery 插件
2011/07/09 Javascript
解决3.01版的jquery.form.js中文乱码问题的解决方法
2012/03/08 Javascript
jQuery 三击事件实现代码
2013/09/11 Javascript
javascript面向对象之对象的深入理解
2015/01/13 Javascript
JavaScript实现函数返回多个值的方法
2015/06/09 Javascript
JavaScript让Textarea支持tab按键的方法
2015/06/26 Javascript
谈谈我对JavaScript原型和闭包系列理解(随手笔记8)
2015/12/24 Javascript
JavaScript缓冲运动实现方法(2则示例)
2016/01/08 Javascript
jquery div模态窗口的简单实例
2016/05/28 Javascript
BootStrap智能表单demo示例详解
2016/06/13 Javascript
AngularJs Injecting Services Into Controllers详解
2016/09/02 Javascript
详解webpack异步加载业务模块
2017/06/23 Javascript
vue 表单输入格式化中文输入法异常问题
2018/05/30 Javascript
详解Vue项目中实现锚点定位
2019/04/24 Javascript
微信小程序 select 下拉框组件功能
2019/09/09 Javascript
使用layui定义一个模块并使用的例子
2019/09/14 Javascript
jQuery 动画与停止动画效果实例详解
2020/05/19 jQuery
浅谈python中的getattr函数 hasattr函数
2016/06/14 Python
python itchat实现调用微信接口的第三方模块方法
2019/06/11 Python
django框架面向对象ORM模型继承用法实例分析
2019/07/29 Python
使用Python的turtle模块画国旗
2019/09/24 Python
Python3标准库之dbm UNIX键-值数据库问题
2020/03/24 Python
python查找特定名称文件并按序号、文件名分行打印输出的方法
2020/04/24 Python
使用css3和jquery实现可伸缩搜索框
2014/02/12 HTML / CSS
canvas 橡皮筋式线条绘图应用方法
2019/02/13 HTML / CSS
一文彻底解决HTML5页面中长按保存图片功能
2019/06/10 HTML / CSS
求职自荐信
2013/12/14 职场文书
机关党员2014全国两会学习心得体会
2014/03/10 职场文书
学生期末评语大全
2014/04/30 职场文书
英语四级考试作弊检讨书
2014/09/29 职场文书
Python中使用Opencv开发停车位计数器功能
2022/04/04 Python