Python面向对象class类属性及子类用法分析

 更新时间:2018年02月02日 11:08:00   作者:毕加索的ma  
这篇文章主要介绍了Python面向对象class类属性及子类用法,结合实例形式较为详细的分析了Python面向对象编程中class类属性的访问、修改、删除操作及子类的相关使用技巧,需要的朋友可以参考下

本文实例讲述了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数据结构与算法教程》、《Python Socket编程技巧总结》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python编码操作技巧总结》及《Python入门与进阶经典教程

希望本文所述对大家Python程序设计有所帮助。

相关文章

  • 通过Plotly实现交互式数据可视化的流程步骤

    通过Plotly实现交互式数据可视化的流程步骤

    在数据科学和数据分析领域,数据可视化是一种非常重要的技术,Plotly 是一个功能强大的 Python 可视化库,它可以帮助我们创建交互式的数据可视化图表,本文将介绍如何使用 Plotly 实现交互式数据可视化,需要的朋友可以参考下
    2024-05-05
  • Python如何实现大型数组运算(使用NumPy)

    Python如何实现大型数组运算(使用NumPy)

    这篇文章主要介绍了Python如何实现大型数组运算,文中讲解非常细致,帮助大家更好的了解和学习,感兴趣的朋友可以了解下
    2020-07-07
  • Python按键或值对字典进行排序

    Python按键或值对字典进行排序

    这篇文章主要为大家介绍了Python对字典进行排序,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2021-12-12
  • 微信公众号接入ChatGPT机器人的方法

    微信公众号接入ChatGPT机器人的方法

    这篇文章主要介绍了微信公众号接入ChatGPT机器人的方法,不难,总共可以分为两步,一是在云服务器上部署自定义消息处理服务,二是微信公众号配置自己的消息处理服务器,本文给大家讲解的非常详细,需要的朋友可以参考下
    2023-02-02
  • Python字符串与正则表达式详细介绍

    Python字符串与正则表达式详细介绍

    这篇文章主要介绍了Python字符串与正则表达式,Python字符串与正则表达式在Python中具有非常重要的地位,熟练的使用字符串与正则表达式能够为我们的Python编程提供很多的便利之处,希望您阅读完本文后能够有所收获
    2022-01-01
  • PPOCRLabel标注的txt格式如何转换成labelme能修改的json格式

    PPOCRLabel标注的txt格式如何转换成labelme能修改的json格式

    这篇文章主要介绍了PPOCRLabel标注的txt格式如何转换成labelme能修改的json格式问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-03-03
  • 利用python3筛选excel中特定的行(行值满足某个条件/行值属于某个集合)

    利用python3筛选excel中特定的行(行值满足某个条件/行值属于某个集合)

    这篇文章主要给大家介绍了关于利用python3筛选excel中特定的行(行值满足某个条件/行值属于某个集合)的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-09-09
  • python3线程池ThreadPoolExecutor处理csv文件数据

    python3线程池ThreadPoolExecutor处理csv文件数据

    这篇文章主要为大家介绍了python3线程池ThreadPoolExecutor处理csv文件数据实现的实例过程,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-06-06
  • Python常用内置函数的使用教程详解

    Python常用内置函数的使用教程详解

    Python官方文档对于内置函数的介绍较为简略,但这些内置函数在日常工作中却扮演着不可或缺的角色。这篇文章为大家介绍了Python常用内置函数的使用,需要的可以参考一下
    2023-04-04
  • ptyhon实现sitemap生成示例

    ptyhon实现sitemap生成示例

    这篇文章主要介绍了ptyhon实现sitemap生成示例,需要的朋友可以参考下
    2014-03-03

最新评论