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 splitlines使用技巧
Sep 06 Python
python基于windows平台锁定键盘输入的方法
Mar 05 Python
Python中exit、return、sys.exit()等使用实例和区别
May 28 Python
浅谈Python中的zip()与*zip()函数详解
Feb 24 Python
TensorFlow实现随机训练和批量训练的方法
Apr 28 Python
Python判断以什么结尾以什么开头的实例
Oct 27 Python
Pycharm设置utf-8自动显示方法
Jan 17 Python
值得收藏的10道python 面试题
Apr 15 Python
利用Python库Scapy解析pcap文件的方法
Jul 23 Python
为什么说Python可以实现所有的算法
Oct 04 Python
如何使用python自带IDLE的几种方法
Oct 10 Python
详解python中的三种命令行模块(sys.argv,argparse,click)
Dec 15 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/02 星际争霸
WINDOWS 2000下使用ISAPI方式安装PHP
2006/09/05 PHP
php中通过smtp发邮件的类,测试通过
2007/01/22 PHP
php使用curl和正则表达式抓取网页数据示例
2014/04/13 PHP
php中使用websocket详解
2016/09/23 PHP
PHP正则之正向预查与反向预查讲解与实例
2020/04/06 PHP
Div自动滚动到末尾的代码
2008/10/26 Javascript
js关闭父窗口时关闭子窗口
2013/04/01 Javascript
js与jquery回车提交的方法
2015/02/03 Javascript
Sublime Text 3常用插件及安装方法
2015/12/16 Javascript
jquery实现表格中点击相应行变色功能效果【实例代码】
2016/05/09 Javascript
微信小程序 自定义对话框实例详解
2017/01/20 Javascript
a标签置灰不可点击的实现方法
2017/02/06 Javascript
微信小程序整个页面的自动适应布局的实现
2020/07/12 Javascript
jQuery实现开关灯效果
2020/08/02 jQuery
python实现多线程采集的2个代码例子
2014/07/07 Python
Python利用公共键如何对字典列表进行排序详解
2018/05/19 Python
Selenium元素的常用操作方法分析
2018/08/10 Python
详解Django+Uwsgi+Nginx 实现生产环境部署
2018/11/06 Python
Flask框架踩坑之ajax跨域请求实现
2019/02/22 Python
Python任意字符串转16, 32, 64进制的方法
2019/06/12 Python
django rest framework 实现用户登录认证详解
2019/07/29 Python
根据tensor的名字获取变量的值方式
2020/01/04 Python
Python3开发环境搭建详细教程
2020/06/18 Python
万年牢教学反思
2014/02/15 职场文书
房地产广告词大全
2014/03/19 职场文书
股指期货心得体会
2014/09/10 职场文书
工资收入证明样本(5篇)
2014/09/16 职场文书
2015年幼儿园新年寄语
2014/12/08 职场文书
党性分析材料格式
2014/12/19 职场文书
二年级语文上册复习计划
2015/01/19 职场文书
平遥古城导游词
2015/02/03 职场文书
2016年10月份红领巾广播稿
2015/12/21 职场文书
护理自荐信
2019/05/14 职场文书
解决Pytorch半精度浮点型网络训练的问题
2021/05/24 Python
Java中的继承、多态以及封装
2022/04/11 Java/Android