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中为feedparser设置超时时间避免堵塞
Sep 28 Python
Python中http请求方法库汇总
Jan 06 Python
利用Python命令行传递实例化对象的方法
Nov 02 Python
Python中%r和%s的详解及区别
Mar 16 Python
老生常谈python之鸭子类和多态
Jun 13 Python
Python中xrange与yield的用法实例分析
Dec 26 Python
Python通过调用mysql存储过程实现更新数据功能示例
Apr 03 Python
django进阶之cookie和session的使用示例
Aug 17 Python
python将一个英文语句以单词为单位逆序排放的方法
Dec 20 Python
python实现文本进度条 程序进度条 加载进度条 单行刷新功能
Jul 03 Python
解决python 读取excel时 日期变成数字并加.0的问题
Oct 08 Python
Python urllib2运行过程原理解析
Jun 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
PHP5.0对象模型探索之抽象方法和抽象类
2006/09/05 PHP
xajax写的留言本
2006/11/25 PHP
PHP提取中文首字母
2008/04/09 PHP
PHP采集利器 Snoopy 试用心得
2011/07/03 PHP
PHP实现微信网页授权开发教程
2016/01/19 PHP
微信支付开发发货通知实例
2016/07/12 PHP
js 多种变量定义(对象直接量,数组直接量和函数直接量)
2010/05/24 Javascript
JS画5角星方法介绍
2013/09/17 Javascript
基于javascript实现右下角浮动广告效果
2016/01/08 Javascript
JS获取及验证开始结束日期的方法
2016/08/20 Javascript
jquery UI Datepicker时间控件冲突问题解决
2016/12/16 Javascript
jQuery+CSS3实现点赞功能
2017/03/13 Javascript
AngularJS 验证码60秒倒计时功能的实现
2017/06/05 Javascript
基于LayUI实现前端分页功能的方法
2017/07/22 Javascript
在 React、Vue项目中使用SVG的方法
2018/02/09 Javascript
js中数组常用方法总结(推荐)
2019/04/09 Javascript
javascript实现贪吃蛇经典游戏
2020/04/10 Javascript
JavaScript forEach中return失效问题解决方案
2020/06/01 Javascript
python实现的防DDoS脚本
2011/02/08 Python
MySQLdb ImportError: libmysqlclient.so.18解决方法
2014/08/21 Python
利用Python找出序列中出现最多的元素示例代码
2017/12/08 Python
Python给定一个句子倒序输出单词以及字母的方法
2018/12/20 Python
Python3实现计算两个数组的交集算法示例
2019/04/03 Python
Django 开发环境配置过程详解
2019/07/18 Python
python 爬虫之selenium可视化爬虫的实现
2020/12/04 Python
详解Sticky Footer 绝对底部的两种套路
2017/11/03 HTML / CSS
adidas旗下高尔夫装备供应商:TaylorMade Golf(泰勒梅高尔夫)
2016/08/28 全球购物
美国正宗奢华复古手袋、珠宝及配饰网站:What Goes Around Comes Around
2018/07/21 全球购物
EJB发布WEB服务一般步骤
2012/10/31 面试题
体育专业大学生职业生涯规划范文:打造自己的运动帝国
2014/09/12 职场文书
2014年最新领导班子整改方案
2014/09/27 职场文书
2014年小学教学工作总结
2014/11/13 职场文书
2014年村计划生育工作总结
2014/11/14 职场文书
英文感谢信范文
2015/01/21 职场文书
傲慢与偏见读书笔记
2015/06/29 职场文书
MySQL主从复制断开的常用修复方法
2021/04/07 MySQL