Python面向对象class类属性及子类用法分析
本文实例讲述了Python面向对象class类属性及子类用法。分享给大家供大家参考,具体如下:
class类属性
classFoo(object): x=1.5 foo=Foo() printfoo.x#通过实例访问类属性 >>>1.5 printFoo.x#通过类访问类属性 >>>1.5 foo.x=1.7#只改新实例属性,不会改变类属性 printfoo.x >>>1.7 printFoo.x >>>1.5 foo.x+=0.2##只改新实例属性,不会改变类属性 printfoo.x >>>1.9 printFoo.x >>>1.5 delfoo.x##删除更新的实例属性,默认变为类的属性 printfoo.x >>>1.5 printFoo.x >>>1.5
class子类
父类:
classAddrBookEntry(object): "addressbookentryclass" def__init__(self,nm,ph): self.name=nm self.phone=ph print"createdinstancefor:",self.name defupdatePhone(self,newph): self.phone=newph print"updatedphone#for:",self.name
子类:
当一个类被派生出来,子类就继承了基类的属性。所以EmplAddrBookEntry继承了AddrBookEntry的updatePhone的方法。子类最好自定义自己的构造器,不然基类的构造器会被调用。如果子类重写了基类的构造器,基类的构造器就不会自动调用,除非被显示声明出来。
classEmplAddrBookEntry(AddrBookEntry): "employeeaddressbookentryclass" def__init__(self,nm,ph,id,em):##重写基类构造器 AddrBookEntry.__init__(self,nm,ph) self.empid=id self.email=em defupdateEmail(self,newem): self.email=newem print"updatede-mailaddressfor:",self.name
使用子类:
john=EmplAddrBookEntry("johndoe","408-555-1212",42,"john@spam.doe") createdinstancefor:johndoe >>>john <__main__.EmplAddrBookEntryobjectat0x02115FD0> >>>john.name 'johndoe' >>>john.phone '408-555-1212' >>>john.email 'john@spam.doe' >>>john.updatePhone("415-555-1212") updatedphone#for:johndoe >>>john.phone '415-555-1212' >>>john.updateEmail("john@doe.spam") updatede-mailaddressfor:johndoe >>>john.email 'john@doe.spam'
更多关于Python相关内容感兴趣的读者可查看本站专题:《Python面向对象程序设计入门与进阶教程》、《Python数据结构与算法教程》、《PythonSocket编程技巧总结》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python编码操作技巧总结》及《Python入门与进阶经典教程》
希望本文所述对大家Python程序设计有所帮助。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。