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的教程-Windows
Jul 22 Python
python交互式图形编程实例(三)
Nov 17 Python
Python subprocess库的使用详解
Oct 26 Python
Win10 安装PyCharm2019.1.1(图文教程)
Sep 29 Python
python元组和字典的内建函数实例详解
Oct 22 Python
pytorch .detach() .detach_() 和 .data用于切断反向传播的实现
Dec 27 Python
python通过文本在一个图中画多条线的实例
Feb 21 Python
怎么快速自学python
Jun 22 Python
什么是Python包的循环导入
Sep 08 Python
浅谈python 类方法/静态方法
Sep 18 Python
pytest fixtures装饰器的使用和如何控制用例的执行顺序
Jan 28 Python
python可视化大屏库big_screen示例详解
Nov 23 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
肝肠寸断了解下!盘点史上最伤心的十大动漫
2020/03/04 日漫
MySQL连接数超过限制的解决方法
2011/07/17 PHP
php ci框架中加载css和js文件失败的原因及解决方法
2014/07/29 PHP
两种设置php载入页面时编码的方法
2014/07/29 PHP
php获取apk包信息的方法
2014/08/15 PHP
PHP实现自动识别原编码并对字符串进行编码转换的方法
2016/07/13 PHP
PHP流Streams、包装器wrapper概念与用法实例详解
2017/11/17 PHP
如何判断图片地址是否失效
2007/02/02 Javascript
Jquery中增加参数与Json转换代码
2009/11/20 Javascript
JS中处理与当前时间间隔的函数代码
2012/05/23 Javascript
用js实现控件的隐藏及style.visibility的使用
2013/06/14 Javascript
jquery中常用的SET和GET$(”#msg”).html循环介绍
2013/10/09 Javascript
jQuery Mobile 导航栏代码
2013/11/01 Javascript
javascript实现checkBox的全选,反选与赋值
2015/03/12 Javascript
微信小程序 navigation API实例详解
2016/10/02 Javascript
微信小程序之页面拦截器的示例代码
2017/09/07 Javascript
vue-cli中打包图片路径错误的解决方法
2017/10/26 Javascript
JS+HTML实现的圆形可点击区域示例【3种方法】
2018/08/01 Javascript
Node批量爬取头条视频并保存方法
2018/09/20 Javascript
python多线程用法实例详解
2015/01/15 Python
Go/Python/Erlang编程语言对比分析及示例代码
2018/04/23 Python
基于python实现计算且附带进度条代码实例
2020/03/31 Python
Jupyter Notebook的连接密码 token查询方式
2020/04/21 Python
Django在Model保存前记录日志实例
2020/05/14 Python
解决numpy矩阵相减出现的负值自动转正值的问题
2020/06/03 Python
python创建文本文件的简单方法
2020/08/30 Python
前端canvas水印快速制作(附完整代码)
2019/09/19 HTML / CSS
美国最大的城市服装和运动鞋零售商:Jimmy Jazz
2016/11/19 全球购物
Paradigit比利时电脑卖场:购买笔记本、电脑、平板和外围设备
2016/11/28 全球购物
中国高端家电购物商城:顺电
2018/03/04 全球购物
C语言50道问题
2014/10/23 面试题
连锁经营管理专业大学生求职信
2013/10/30 职场文书
模特职业生涯规划范文
2014/02/26 职场文书
党员教师群众路线对照检查材料思想汇报
2014/09/29 职场文书
5分钟教你docker安装启动redis全教程(全新方式)
2021/05/29 Redis
Python中的套接字编程是什么?
2021/06/21 Python