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爬虫之爬虫框架Scrapy安装配置
Nov 06 Python
利用Django框架中select_related和prefetch_related函数对数据库查询优化
Apr 01 Python
基于Python实现文件大小输出
Jan 11 Python
python爬虫之百度API调用方法
Jun 11 Python
回调函数的意义以及python实现实例
Jun 20 Python
利用Pandas 创建空的DataFrame方法
Apr 08 Python
python 二维数组90度旋转的方法
Jan 28 Python
Python 循环终止语句的三种方法小结
Jun 24 Python
python可视化实现KNN算法
Oct 16 Python
Python 静态方法和类方法实例分析
Nov 21 Python
Python操作Sonqube API获取检测结果并打印过程解析
Nov 27 Python
详解python 支持向量机(SVM)算法
Sep 18 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 字符串中的\n换行符无效、不能换行的解决方法
2014/04/02 PHP
如何通过Linux命令行使用和运行PHP脚本
2015/07/29 PHP
Zend Framework教程之Application用法实例详解
2016/03/14 PHP
php实现数组纵向转横向并过滤重复值的方法分析
2017/05/29 PHP
基于PHP+Jquery制作的可编辑的表格的代码
2011/04/10 Javascript
jQuery中 noConflict() 方法使用
2013/04/25 Javascript
javascript实现简单的鼠标拖动效果实例
2015/04/10 Javascript
JS组件Bootstrap实现弹出框和提示框效果代码
2015/12/08 Javascript
老生常谈 关于JavaScript的类的继承
2016/06/24 Javascript
Node.js开发第三方微信公众平台
2017/06/05 Javascript
微信小程序实践之动态控制组件的显示/隐藏功能
2018/07/18 Javascript
layui中table表头样式修改方法
2018/08/15 Javascript
JS Object.preventExtensions(),Object.seal()与Object.freeze()用法实例分析
2018/08/25 Javascript
微信小程序签到功能
2018/10/31 Javascript
JS使用对象的defineProperty进行变量监控操作示例
2019/02/02 Javascript
elementUI 动态生成几行几列的方法示例
2019/07/11 Javascript
微信小程序swiper禁止用户手动滑动代码实例
2019/08/23 Javascript
js实现开关灯效果
2020/03/30 Javascript
jQuery擦除插件eraser使用方法详解
2020/01/11 jQuery
JS实现斐波那契数列的五种方式(小结)
2020/09/09 Javascript
探究Python的Tornado框架对子域名和泛域名的支持
2015/05/02 Python
Python中几个比较常见的名词解释
2015/07/04 Python
Python的shutil模块中文件的复制操作函数详解
2016/07/05 Python
windows7 32、64位下python爬虫框架scrapy环境的搭建方法
2018/11/29 Python
Python3安装psycopy2以及遇到问题解决方法
2019/07/03 Python
python 实现从高分辨图像上抠取图像块
2020/01/02 Python
pytorch实现保证每次运行使用的随机数都相同
2020/02/20 Python
Python装饰器用法与知识点小结
2020/03/09 Python
HTML5 video 视频标签使用介绍
2014/02/03 HTML / CSS
超市客服工作职责
2014/06/11 职场文书
2014最新党员违纪检讨书
2014/10/12 职场文书
女性健康知识讲座通知
2015/04/23 职场文书
关于公司年会的开幕词
2016/03/04 职场文书
党风廉政承诺书2016
2016/03/25 职场文书
GTX1660显卡搭配显示器推荐
2022/04/19 数码科技
SqlServer常用函数及时间处理小结
2023/05/08 SQL Server