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使用Supervisor来管理进程的方法
May 28 Python
Python3字符串学习教程
Aug 20 Python
安装Python和pygame及相应的环境变量配置(图文教程)
Jun 04 Python
python 删除列表里所有空格项的方法总结
Apr 18 Python
Python3 单行多行万能正则匹配方法
Jan 07 Python
python矩阵/字典实现最短路径算法
Jan 17 Python
在Python中合并字典模块ChainMap的隐藏坑【推荐】
Jun 27 Python
Jupyter Notebook远程登录及密码设置操作
Apr 10 Python
python 读取.nii格式图像实例
Jul 01 Python
Python开发入门——迭代的基本使用
Sep 03 Python
Python数据模型与Python对象模型的相关总结
Jan 26 Python
python中用ggplot绘制画图实例讲解
Jan 26 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 5.0对象模型深度探索之属性和方法
2008/03/27 PHP
PHP可逆加密/解密函数分享
2012/09/25 PHP
基于PHP+Ajax实现表单验证的详解
2013/06/25 PHP
php使用百度ping服务代码实例
2014/06/19 PHP
Aster vs KG BO3 第一场2.18
2021/03/10 DOTA
基于jquery的合并table相同单元格的插件(精简版)
2011/04/05 Javascript
node.js中的fs.linkSync方法使用说明
2014/12/15 Javascript
移动端JQ插件hammer使用详解
2015/07/03 Javascript
自带气泡提示的vue校验插件(vue-verify-pop)
2017/04/07 Javascript
jquery.validate表单验证插件使用详解
2017/06/21 jQuery
JavaScript实现瀑布流图片效果
2017/06/30 Javascript
关于vue单文件中引用路径的处理方法
2018/01/08 Javascript
详解小程序开发经验:多页面数据同步
2019/05/18 Javascript
js时间转换毫秒的实例代码
2019/08/21 Javascript
微信小程序实现日历小功能
2020/11/18 Javascript
vue element实现表格合并行数据
2020/11/30 Vue.js
vue使用lodop打印控件实现浏览器兼容打印的方法
2021/02/07 Vue.js
[00:32]2016完美“圣”典风云人物:Maybe宣传片
2016/12/05 DOTA
Python命令行参数解析模块optparse使用实例
2015/04/13 Python
Python读取Word(.docx)正文信息的方法
2018/03/15 Python
Python操作mongodb数据库的方法详解
2018/12/08 Python
Python可变参数会自动填充前面的默认同名参数实例
2019/11/18 Python
使用pandas实现连续数据的离散化处理方式(分箱操作)
2019/11/22 Python
Python turtle库绘制菱形的3种方式小结
2019/11/23 Python
Python读取多列数据以及用matplotlib制作图表方法实例
2020/09/23 Python
Booking.com西班牙:全球酒店预订
2018/03/30 全球购物
英国珠宝和手表专家:Pleasance & Harper
2020/10/21 全球购物
什么是组件架构
2016/05/15 面试题
信用社实习人员自我鉴定
2013/09/20 职场文书
设计毕业生简历中的自我评价
2013/10/01 职场文书
社区服务活动小结
2014/07/08 职场文书
稽核岗位职责范本
2015/04/13 职场文书
超市食品安全承诺书
2015/04/29 职场文书
新郎父母婚礼致辞
2015/07/27 职场文书
node快速搭建后台的实现步骤
2022/02/18 NodeJs
app场景下uniapp的扫码记录
2022/07/23 Java/Android