Python面向?qū)ο骳lass類屬性及子類用法分析
本文實(shí)例講述了Python面向?qū)ο骳lass類屬性及子類用法。分享給大家供大家參考,具體如下:
class類屬性
class Foo(object): x=1.5 foo=Foo() print foo.x#通過實(shí)例訪問類屬性 >>>1.5 print Foo.x #通過類訪問類屬性 >>>1.5 foo.x=1.7 #只改新實(shí)例屬性,不會(huì)改變類屬性 print foo.x >>>1.7 print Foo.x >>>1.5 foo.x+=0.2 ##只改新實(shí)例屬性,不會(huì)改變類屬性 print foo.x >>>1.9 print Foo.x >>>1.5 del foo.x ##刪除更新的實(shí)例屬性,默認(rèn)變?yōu)轭惖膶傩? 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)一個(gè)類被派生出來,子類就繼承了基類的屬性。所以EmplAddrBookEntry繼承了AddrBookEntry的updatePhone的方法。子類最好自定義自己的構(gòu)造器,不然基類的構(gòu)造器會(huì)被調(diào)用。如果子類重寫了基類的構(gòu)造器,基類的構(gòu)造器就不會(huì)自動(dòng)調(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'
更多關(guān)于Python相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Python面向?qū)ο蟪绦蛟O(shè)計(jì)入門與進(jìn)階教程》、《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python Socket編程技巧總結(jié)》、《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》、《Python編碼操作技巧總結(jié)》及《Python入門與進(jìn)階經(jīng)典教程》
希望本文所述對(duì)大家Python程序設(shè)計(jì)有所幫助。
相關(guān)文章
Python實(shí)現(xiàn)的簡單文件傳輸服務(wù)器和客戶端
這篇文章主要介紹了Python實(shí)現(xiàn)的簡單文件傳輸服務(wù)器和客戶端,本文直接給出Server和Client端的實(shí)現(xiàn)代碼,需要的朋友可以參考下2015-04-04Python爬蟲基礎(chǔ)之簡單說一下scrapy的框架結(jié)構(gòu)
今天給大家?guī)淼氖顷P(guān)于Python爬蟲的相關(guān)知識(shí),文章圍繞著scrapy的框架結(jié)構(gòu)展開,文中有非常詳細(xì)的介紹及代碼示例,需要的朋友可以參考下2021-06-06Python Matplotlib繪制箱型圖(箱線圖)boxplot的方法詳解
箱線圖(箱型圖)主要作用是發(fā)現(xiàn)數(shù)據(jù)內(nèi)部整體的分布分散情況,包括上下限、各分位數(shù)、異常值等,本文為大家整理了Matplotlib繪制箱型圖的所以方法,希望對(duì)大家有所幫助2023-05-05Python中元組的基礎(chǔ)介紹及常用操作總結(jié)
元組是一種不可變序列。元組變量的賦值要在定義時(shí)就進(jìn)行,這就像C語言中的const變量或是C++的引用,定義時(shí)賦值之后就不允許有修改。元組存在的意義是:元組在映射中可以作為鍵使用,因?yàn)橐WC鍵的不變性。元組作為很多內(nèi)置函數(shù)和方法的返回值存在2021-09-09Python中TypeError: int object is not 
在Python中,當(dāng)你嘗試對(duì)一個(gè)非迭代對(duì)象(如整數(shù)、浮點(diǎn)數(shù)等)使用迭代操作(如for循環(huán)、列表推導(dǎo)式中的迭代等)時(shí),會(huì)觸發(fā)TypeError: 'int' object is not iterable錯(cuò)誤,所以本文給大家介紹了Python中TypeError: int object is not iterable錯(cuò)誤分析及解決辦法2024-08-08Python提高運(yùn)行速度工具之Pandarallel的使用教程
為了提高運(yùn)行速度,我們一般會(huì)采用多進(jìn)程的方式。而常見的方案對(duì)于普通python玩家來說都不是特別友好,怎樣才能算作一個(gè)友好的并行處理方案?本文就來和大家講講pandarallel的使用2022-09-09Python 實(shí)現(xiàn)敏感目錄掃描的示例代碼
這篇文章主要介紹了Python 實(shí)現(xiàn)敏感目錄掃描的示例代碼,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-05-05