python定义一个类和子类_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程序设计有所帮助。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值