python定义一个类和子类_Python面向对象class类属性及子类用法分析
本文實例講述了Python面向?qū)ο骳lass類屬性及子類用法。分享給大家供大家參考,具體如下:
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 ##刪除更新的實例屬性,默認變?yōu)轭惖膶傩?/p>
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
子類:
當(dāng)一個類被派生出來,子類就繼承了基類的屬性。所以EmplAddrBookEntry繼承了AddrBookEntry的updatePhone的方法。子類最好自定義自己的構(gòu)造器,不然基類的構(gòu)造器會被調(diào)用。如果子類重寫了基類的構(gòu)造器,基類的構(gòu)造器就不會自動調(diào)用,除非被顯示聲明出來。
class EmplAddrBookEntry(AddrBookEntry):
"employee address book entry class"
def __init__(self, nm, ph, id, em):##重寫基類構(gòu)造器
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程序設(shè)計有所幫助。
與50位技術(shù)專家面對面20年技術(shù)見證,附贈技術(shù)全景圖總結(jié)
以上是生活随笔為你收集整理的python定义一个类和子类_Python面向对象class类属性及子类用法分析的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python安装whl_EN-mysql
- 下一篇: python点击按钮浏览本地文件_Pyt