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 相关文章推荐
Linux环境下MySQL-python安装过程分享
Feb 02 Python
Django中的“惰性翻译”方法的相关使用
Jul 27 Python
Python基于scapy实现修改IP发送请求的方法示例
Jul 08 Python
python如何拆分含有多种分隔符的字符串
Mar 20 Python
对Python 2.7 pandas 中的read_excel详解
May 04 Python
关于python之字典的嵌套,递归调用方法
Jan 21 Python
python傅里叶变换FFT绘制频谱图
Jul 19 Python
tensorflow 限制显存大小的实现
Feb 03 Python
python数据爬下来保存的位置
Feb 17 Python
Python xml、字典、json、类四种数据类型如何实现互相转换
May 27 Python
基于python实现判断字符串是否数字算法
Jul 10 Python
解决Python import .pyd 可能遇到路径的问题
Mar 04 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库的php代码
2009/04/20 PHP
PHP array操作10个小技巧分享
2011/06/23 PHP
获取php页面执行时间,数据库读写次数,函数调用次数等(THINKphp)
2013/06/03 PHP
php+mysql实现用户注册登陆的方法
2015/01/03 PHP
PHP+Ajax无刷新带进度条图片上传示例
2017/02/08 PHP
Laravel框架中集成MongoDB和使用详解
2019/10/17 PHP
零基础学JavaScript最新动画教程+iso光盘下载
2008/01/22 Javascript
Javascript优化技巧(文件瘦身篇)
2008/01/28 Javascript
jquery中的sortable排序之后的保存状态的解决方法
2010/01/28 Javascript
解决jquery的datepicker的本地化以及Today问题
2012/05/23 Javascript
Javascript 赋值机制详解
2014/11/23 Javascript
js实现图片点击左右轮播
2015/07/08 Javascript
jQuery插件windowScroll实现单屏滚动特效
2015/07/14 Javascript
JS判断当前页面是否在微信浏览器打开的方法
2015/12/08 Javascript
前端学习笔记style,currentStyle,getComputedStyle的用法与区别
2016/05/28 Javascript
jQuery ajax实现省市县三级联动
2021/03/07 Javascript
一篇文章让你彻底弄懂JS的事件冒泡和事件捕获
2017/08/14 Javascript
vue基于element的区间选择组件
2018/09/07 Javascript
vue项目上传Github预览的实现示例
2018/11/06 Javascript
基于vue实现图片验证码倒计时60s功能
2019/12/10 Javascript
[03:56]还原FTP电影首映式 DOTA2群星拼出遗迹世界
2014/03/26 DOTA
[01:14:12]2018DOTA2亚洲邀请赛4.7 总决赛 LGD vs Mineski 第二场
2018/04/09 DOTA
仅用50行Python代码实现一个简单的代理服务器
2015/04/08 Python
理解python中生成器用法
2017/12/20 Python
django 邮件发送模块smtp使用详解
2019/07/22 Python
使用Python生成200个激活码的实现方法
2019/11/22 Python
python IP地址转整数
2020/11/20 Python
伦敦哈德森鞋:Hudson Shoes
2018/02/06 全球购物
台湾屈臣氏网路商店:Watsons台湾
2020/12/29 全球购物
物流仓储计划书
2014/01/10 职场文书
怎么写好自荐书
2014/03/02 职场文书
营销学习心得体会
2014/09/12 职场文书
施工员岗位职责
2015/02/10 职场文书
工作年限证明范本
2015/06/15 职场文书
大学生暑假实习总结
2015/07/13 职场文书
详解Anyscript开发指南绕过typescript类型检查
2022/09/23 Javascript