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语言编写电脑时间自动同步小工具
Mar 08 Python
python提取页面内url列表的方法
May 25 Python
python 2.6.6升级到python 2.7.x版本的方法
Oct 09 Python
python 生成器生成杨辉三角的方法(必看)
Apr 10 Python
python将unicode转为str的方法
Jun 21 Python
浅谈flask截获所有访问及before/after_request修饰器
Jan 18 Python
解决python中使用plot画图,图不显示的问题
Jul 04 Python
详解Python3中的迭代器和生成器及其区别
Oct 09 Python
Python读取Pickle文件信息并计算与当前时间间隔的方法分析
Jan 30 Python
详解Python给照片换底色(蓝底换红底)
Mar 22 Python
django 邮件发送模块smtp使用详解
Jul 22 Python
python可视化篇之流式数据监控的实现
Aug 07 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 iconv函数的使用详解
2013/06/09 PHP
php使用sql server验证连接数据库的方法
2014/12/25 PHP
教你php如何实现验证码
2016/01/20 PHP
PHP5.5基于mysqli连接MySQL数据库和读取数据操作实例详解
2019/02/16 PHP
javascript add event remove event
2008/04/07 Javascript
写给想学习Javascript的朋友一点学习经验小结
2010/11/23 Javascript
JavaScript prototype属性深入介绍
2012/11/27 Javascript
iframe 上下滚动条如何默认在下方实现原理
2012/12/10 Javascript
Function.prototype.bind用法示例
2013/09/16 Javascript
js截取固定长度的中英文字符的简单实例
2013/11/22 Javascript
Angularjs 设置全局变量的方法总结
2016/10/20 Javascript
Nodejs回调加超时限制两种实现方法
2017/06/09 NodeJs
canvas+gif.js打造自己的数字雨头像的示例代码
2017/10/26 Javascript
ES6的解构赋值实例详解
2019/05/06 Javascript
详解Vue.js 作用域、slot用法(单个slot、具名slot)
2019/10/15 Javascript
uni-app如何实现增量更新功能
2020/01/03 Javascript
vue中组件通信详解(父子组件, 爷孙组件, 兄弟组件)
2020/07/27 Javascript
ant-design-vue 时间选择器赋值默认时间的操作
2020/10/27 Javascript
解决antd日期选择组件,添加value就无法点击下一年和下一月问题
2020/10/29 Javascript
Python自定义函数的创建、调用和函数的参数详解
2014/03/11 Python
python实现合并两个数组的方法
2015/05/16 Python
Python科学计算之NumPy入门教程
2017/01/15 Python
TensorFlow实现模型评估
2018/09/07 Python
Python3爬取英雄联盟英雄皮肤大图实例代码
2018/11/14 Python
可自定义箭头样式的CSS3气泡提示框
2016/03/16 HTML / CSS
学前教育求职自荐信范文
2013/12/25 职场文书
党员违纪检讨书
2014/02/18 职场文书
土木工程求职信
2014/05/29 职场文书
实习介绍信模板
2015/01/30 职场文书
简单的辞职信怎么写
2015/02/28 职场文书
运动会通讯稿200字
2015/07/20 职场文书
导游词之云南丽江-泸沽湖
2019/09/26 职场文书
在CSS中映射鼠标位置并实现通过鼠标移动控制页面元素效果(实例代码)
2021/04/22 HTML / CSS
MySQL 使用索引扫描进行排序
2021/06/20 MySQL
html+css实现滚动到元素位置显示加载动画效果
2021/08/02 HTML / CSS
分享node.js实现简单登录注册的具体代码
2022/04/26 NodeJs