日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

Python 面向?qū)ο蟛糠种R點小結

瀏覽:170日期:2022-08-03 10:56:42

本文實例講述了Python 面向?qū)ο蟛糠种R點。分享給大家供大家參考,具體如下:

面向?qū)ο螅?/b>

世間萬物,皆可分類。--------------------手機《--------------某一個分類

世間萬物,皆為對象。--------------------我的手機《---------有具體指向

只要是對象,就肯定屬于某種品類。

只要是對象,就肯定有屬性。

類的相同點一起寫,不同點分開寫。

1.Python類中self的來源:

通常函數(shù)的執(zhí)行方式為:

調(diào)用函數(shù)--》執(zhí)行函數(shù)----》返回該函數(shù)的執(zhí)行結果(得到一個內(nèi)存地址)

Python類中方法卻不是這樣執(zhí)行的,

而是在實例化對象的同時也將此時的對象名稱傳入。然后在類中__init__需要一個參數(shù)接受該對象,故選用self,self代表的是當前對象的引用,指向的是同一塊內(nèi)存地址,所以不需要使用return返回值。

2.為什么類中的方法最少有一個self參數(shù)?

這是由于類中的方法是類內(nèi)部共存(共享)的,不像其他字段屬性每次都在內(nèi)存中復制得有,但是得知道每次調(diào)用該方法的對象是誰,需要將調(diào)用這個方法的對象傳遞到該方法中,故需要一個self接收該對象。在底層是通過----》類.方法(對象名)實現(xiàn)該過程的。最終的實現(xiàn)是誰調(diào)用這個方法,誰就把自己傳遞給該方法。 類名.方法名(類的對象)

r=Role(‘WFB’) Role是一個類,類中有一個got_shot()方法。

r.got_shot()======》實質(zhì)為Role.got_shot(r)

3.在構造函數(shù)中初始化:在內(nèi)存中開辟一塊空間,然后將一些值進行存儲。對于沒有在構造函數(shù)中初始化的方法是在類的內(nèi)存當中的,而不是在實例的內(nèi)存空間里。

4.python 類變量和實例變量

類變量既可以通過實例也可以通過類來訪問,這是因為訪問順序是默認先訪問實例的,若實例中沒有則來訪問類的。

實例變量是可以增加的,也是可以刪除的,體現(xiàn)為:

4.1增加

4.1.1 在類初始化時是通過構造函數(shù)__init__()中接收的self參數(shù)然后進行賦值,如下

class Role: def __init__(self, name): #在實例化時做一些類的初始化的工作 self.name = name #實質(zhì)為r1.name=name實例變量(靜態(tài)屬性),作用域就是實例本身

實質(zhì)為:

r=Role('wfb')===>r=Role(r,'wfb') ,然后通過r.name=name在構造函數(shù)中進行賦值。

4.1.2 在類實例后單獨增加,現(xiàn)在新增一個實例變量范圍只針對該實例。

例如:

r=Role('wfb')r.gender='男'

上述兩者實質(zhì)是一樣的,只是賦值時間有區(qū)別,一個是在類在實例化(調(diào)用構造函數(shù))時賦值。一個是在實例化之后再在賦值操作。同樣可以達到為某實例增加屬性的目的。

4.2刪除

刪除實例變量(只是針對當前的對象)。

方式為=>

del r.name

這樣該實例就沒有了該變量,但是不會影響其他的實例變量。

5.在實例中是否可以改類中的類變量??

class Role:n='我是類變量' def __init__(self, name): #在實例化時做一些類的初始化的工作 self.name = name #實質(zhì)為r1.name=name實例變量(靜態(tài)屬性),作用域就是實例本身r1=Role('wfb')r1.n='我是修改后變量'Print('r.n===%s'%r.n) #=====>輸出我是修改后變量r2=Role('WFB Nice')Print('r2.n===%s'%r2.n) #======>輸出為我是類類變量。#先在實例中查找是否有n,沒有則去查找類中是否有。

總結:通過試驗可以知道 我們通過實例修改類中同名的變量,實質(zhì)為是在該實例的內(nèi)存中新增了一個與類變量同名的實例變量。其他實例來調(diào)用該類中的類變量時,其中類變量的值是沒有發(fā)生變化的。

6.通過類是否可以直接修改類的的類變量??【類名.類變量==值】、

結論為:若實例中已有新增的與類變量同名的則變量值為實例中的變量值,否則則是修改后的類變量值,這是由于訪問順序是默認先訪問實例的,若實例中沒有則來訪問類的。

需要注意的是若變量是一個list則修改一個影響全部,這是由于他們共用的是同一個內(nèi)存地址。

實例變量是為了區(qū)別每個對象的不同點,而類變量是該類所用實例對象共用的。當某個對象實例中關于這個類變量需要不同值,可以為該對象實例新增一個與類變量同名的實例變量。

7.私有屬性、私有方法=====》體現(xiàn)了封裝

格式為:

私有屬性:__attr

私有方法:def __way(self): pass

特性:只能是在改類中訪問,若外部需要私有屬性或者方法,解決方法為在該類的內(nèi)部定義一個可供外部訪問的方法,然后在該方法中調(diào)用私有屬性或方法。

8.繼承

繼承是指這樣一種能力:它可以使用現(xiàn)有類的所有功能,并在無需重新編寫原來的類的情況下對這些功能進行擴展。

繼承概念的實現(xiàn)方式主要有2類:實現(xiàn)繼承、接口繼承。

實現(xiàn)繼承是指使用基類的屬性和方法而無需額外編碼的能力。

接口繼承是指僅使用屬性和方法的名稱、但是子類必須提供實現(xiàn)的能力(子類重構父類方法)。

8.1 類的繼承

8.1.1 繼承的定義

class Person(object): # 定義一個父類 def talk(self): # 父類中的方法 print('person is talking....') class Chinese(Person): # 定義一個子類, 繼承Person類 def walk(self): # 在子類中定義其自身的方法 print(’is walking...’)c = Chinese()c.talk() # 調(diào)用繼承的Person類的方法c.walk() # 調(diào)用本身的方法

輸出

person is talking....is walking...

8.1.2 構造函數(shù)的繼承

 如果我們要給實例 c 傳參,我們就要使用到構造函數(shù),那么構造函數(shù)該如何繼承,同時子類中又如何定義自己的屬性?

繼承類的構造方法:

1.經(jīng)典類的寫法: 父類名稱.__init__(self,參數(shù)1,參數(shù)2,...)

2. 新式類的寫法:super(子類,self).__init__(參數(shù)1,參數(shù)2,....)

class Person(object): def __init__(self, name, age): self.name = name self.age = age def talk(self): print('person is talking....')class Chinese(Person): def __init__(self, name, age, language): # 先繼承,在重構 Person.__init__(self, name, age) #繼承父類的構造方法,也可以寫成:super(Chinese,self).__init__(name,age) self.language = language # 定義類的本身屬性 def walk(self): print(’is walking...’)class American(Person): passc = Chinese(’wfb’, 22, ’Chinese’)

總結:假如只是簡單的在子類Chinese中定義一個構造函數(shù),其實就是在重構。這樣子類就不能繼承父類的屬性了。所以我們在定義子類的構造函數(shù)時,要先繼承再構造,這樣我們也能獲取父類的屬性了。

子類構造函數(shù)基礎父類構造函數(shù)過程如下:

實例化對象c ----> c 調(diào)用子類__init__() ---- > 子類__init__()繼承父類__init__() ----- > 調(diào)用父類 __init__()

8.1.3 對父類方法的繼承

如果我們對基類/父類的方法需要修改,可以在子類中重構該方法。如下的talk()方法。

class Person(object): def __init__(self, name, age): self.name = name self.age = age def talk(self): print('person is talking....')class Chinese(Person): def __init__(self, name, age, language): Person.__init__(self, name, age) self.language = language print(self.name, self.age, self.language) def talk(self): # 子類 重構方法 print(’%s is speaking chinese’ % self.name) def walk(self): print(’is walking...’)c = Chinese(’wfb’, 22, ’Chinese’)c.talk()

輸出

wfb is speaking chinese

關于多繼承是按照從左到右【代碼中提現(xiàn)方式】繼承的,在繼承上存在一個先后關系,其中構造函數(shù)只會繼承一個(從從左到右誰先有就繼承誰的)。

例如:

class A: def __init__(self): print('A')class B(A): def __init__(self): print('B')class C(A): def __init__(self): print('C') class D(B, C): passd = D()# 結果輸出的為B

特別的:

Python 面向?qū)ο蟛糠种R點小結

9. 多態(tài):一個接口多種實現(xiàn)。 作用:接口重用。

學習git為 https://gitee.com/FelixBinCloud/PythonLearn/tree/master/PythonLearn

更多關于Python相關內(nèi)容感興趣的讀者可查看本站專題:《Python面向?qū)ο蟪绦蛟O計入門與進階教程》、《Python數(shù)據(jù)結構與算法教程》、《Python函數(shù)使用技巧總結》、《Python字符串操作技巧匯總》、《Python編碼操作技巧總結》及《Python入門與進階經(jīng)典教程》

希望本文所述對大家Python程序設計有所幫助。

標簽: Python 編程
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
久久久久一区| 国产中文一区| 免费精品视频| 国产精品日韩欧美一区| 激情综合在线| 激情综合在线| 亚洲成人三区| 久久亚洲影院| 首页亚洲欧美制服丝腿| 亚洲欧美日韩视频二区| 在线综合欧美| 在线视频免费在线观看一区二区| 好吊日精品视频| 日韩视频二区| 久久国产成人午夜av影院宅| 亚洲精品88| 天堂网av成人| 婷婷久久一区| 视频一区在线播放| 亚洲精品九九| 91精品视频一区二区| 日韩av不卡在线观看| 国产精品一区二区99| 国产乱码精品| 国产一区二区三区四区| 天堂√中文最新版在线| 免费久久精品| 在线国产精品一区| 欧美亚洲tv| 久久av网址| 美女av在线免费看| 欧美91精品| 亚洲ab电影| 老鸭窝一区二区久久精品| 日韩欧美国产精品综合嫩v| 国产精品av一区二区| 首页亚洲欧美制服丝腿| 奇米色欧美一区二区三区| 久久精品国产99国产| 国产在线|日韩| 久久xxxx| 国产劲爆久久| 深夜福利视频一区二区| 欧美资源在线| 国产欧美日韩精品一区二区免费| 另类欧美日韩国产在线| 亚洲高清二区| 日韩精品免费视频人成| 国产aⅴ精品一区二区四区| 亚洲午夜av| 日本99精品| 日韩三区在线| 亚洲精品在线二区| 91一区二区三区四区| 视频一区视频二区中文字幕| 免费视频一区二区三区在线观看| 91偷拍一区二区三区精品| 久久亚洲国产精品一区二区| 国产精品巨作av| 久久天堂精品| 亚洲九九精品| 高清久久一区| 亚洲一级大片| 欧美日韩国产v| 日本亚洲视频| 精品捆绑调教一区二区三区 | 亚洲影院天堂中文av色| 国产精品传媒麻豆hd| 黑丝一区二区三区| 红杏一区二区三区| 亚洲三区欧美一区国产二区| 欧美aa一级| 国产欧美日韩精品高清二区综合区| 日韩专区精品| 欧美伊人影院| 欧美日韩国产亚洲一区| 麻豆一区二区99久久久久| 99热精品在线| av日韩中文| 国产欧美日韩影院| 亚洲一区二区日韩| 久久人人88| 精品国产欧美日韩一区二区三区| 人人精品人人爱| 色吊丝一区二区| 欧美国产另类| 婷婷精品久久久久久久久久不卡| 亚洲精品一级二级| 国产欧美日本| 四虎在线精品| 99视频一区| 久久人人97超碰国产公开结果| 麻豆国产欧美一区二区三区| 亚洲精品影视| 夜夜嗨网站十八久久 | 精品中文字幕一区二区三区av| 国产精品一区二区免费福利视频| 伊人精品视频| 久久精品影视| 国产黄大片在线观看| 欧美在线黄色| 蜜桃视频免费观看一区| 欧美日韩国产亚洲一区| 久久亚洲专区| 日韩精品dvd| 麻豆视频在线观看免费网站黄| 久久av国产紧身裤| 91精品视频一区二区| 亚洲精品自拍| 亚洲一区欧美| 免费成人在线观看| 国产婷婷精品| 午夜电影亚洲| 91精品一区二区三区综合| 精品国产免费人成网站| 国产一区日韩| 久久99久久久精品欧美| 国产精品蜜月aⅴ在线| 亚洲毛片在线免费| 亚州欧美在线| 日韩精彩视频在线观看| 亚洲青青久久| 日韩精品福利一区二区三区| 日韩高清国产一区在线| 日本不卡一区二区三区| 欧美一级一区| 国产美女亚洲精品7777| 国产美女久久| 国产精品hd| 久久精品国产在热久久| 国产精品毛片aⅴ一区二区三区| 日本三级亚洲精品| 欧美天堂一区二区| 国产精品亚洲产品| 久久中文精品| 高清一区二区| 久久精品青草| 亚洲欧美日韩国产一区二区| 免费人成精品欧美精品| 日韩欧美中文字幕在线视频| 日韩精品免费观看视频| 国产精品mm| 日韩网站中文字幕| 亚洲欧美日韩高清在线| 久久性天堂网| 国产一精品一av一免费爽爽| 日韩久久一区| 国产精品a级| 中文字幕在线官网| 欧美日韩一区二区综合| 一本一本久久| 日韩精品亚洲专区在线观看| 国产日韩欧美一区| 国产成人1区| 久久国产直播| 热久久国产精品| 久久国产欧美日韩精品| 电影91久久久| 在线日韩视频| 日韩影院精彩在线| 国产精品分类| 丁香婷婷久久| 99xxxx成人网| 国产另类在线| 久久婷婷久久| 少妇精品在线| 水蜜桃精品av一区二区| 欧美精品一区二区三区精品| 亚洲色图国产| 福利在线一区| 99re国产精品| 国产精品99精品一区二区三区∴| 日本综合字幕| 亚洲影视一区| 国产999精品在线观看| 亚洲综合不卡| 国产精品传媒麻豆hd| 国产高清一区| 国产精品麻豆成人av电影艾秋 | 欧美精品三级在线| 色偷偷偷在线视频播放| 免费在线看一区| 久久午夜影院| 99国产精品99久久久久久粉嫩| 国产日韩在线观看视频| 99久久九九| 欧美日韩在线精品一区二区三区激情综合| 精品黄色一级片| 国产精品普通话对白| 国产精品一区二区精品视频观看| 在线成人动漫av| 国产福利亚洲| 国产精品毛片一区二区三区| 国产极品久久久久久久久波多结野| 久久国产成人午夜av影院宅| 国产欧美一区二区三区米奇| 亚洲福利国产| 久久亚洲精精品中文字幕| 免播放器亚洲| 91看片一区|