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

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

簡述 Python 的類和對象

瀏覽:31日期:2022-07-13 13:28:49

系列最后一篇來說說Python中的類與對象,Python這門語言是無處不對象,如果你曾淺要了解過Python,你應該聽過Python是一種面向對象編程的語言,所以你經常可能會看到面向“對象”編程這類段子,而面向對象編程的語言都會有三大特征:封裝、繼承、多態。

我們平時接觸到的很多函數、方法的操作都具有這些性質,我們只是會用,但還沒有去深入了解它的本質,下面就介紹一下關于類和對象的相關知識。

封裝

封裝這個概念應該并不陌生,比如我們把一些數據封裝成一個列表,這就屬于數據封裝,我們也可以將一些代碼語句封裝成一個函數方便調用,這就是代碼的封裝,我們也可以將數據和代碼封裝在一起。用術語表示的話,就是可以將屬性和方法進行封裝,從而得到對象。

首先我們可以定義一個類,這個類中有屬性和方法,但有的伙伴會比較好奇,屬性和方法不是會封裝成對象嘛,為什么又變成類了?舉個例子,類就好比是一個毛坯房,而對象是在毛坯房的基礎上改造成的精裝房。

class XiaoMing: #屬性 height = 180 weight = 65 sex = ’男’ #方法 def run(self): print(’小明在跑步’) def sleep(self): print(’小明在睡覺’)

在類定義完成時就創建了一個類對象,它是對類定義創建的命名空間進行了一個包裝。類對象支持兩種操作:屬性引用和實例化。

屬性引用的語法就是一般的標準語法:obj.name。比如XiaoMing.height和XiaoMing.run就是屬性引用,前者會返回一條數據,而后者會返回一個方法對象。

In[1]:print(XiaoMing.height)Out[1]:180In[2]:print(XiaoMing.run)Out[2]:<function XiaoMing.run at 0x0000021C6239D0D0>

這里也支持對類屬性進行賦值操作,比如為類中的weight屬性賦予一個新值。

In[3]:print(XiaoMing.weight)Out[3]:65In[4]:XiaoMing.weight = 100In[5]:print(XiaoMing.weight)Out[5]:100

而類的實例化可以將類對象看作成一個無參函數的賦值給一個局部變量,如下:

In[6]:ming = XiaoMing()

ming就是由類對象實例化后創建的一個實例對象,通過實例對象也可以調用類中的屬性和方法。

In[7]:ming.run()Out[7]:小明在跑步In[8]:print(xiaoming.height)Out[8]:180#通過向類對象調用方法返回的方法對象中傳入實例對象也可以達到同樣效果In[11]:XiaoMing.run(ming)Out[11]:小明在跑步

魔法方法__init__

類在實例化過程中并不都是像上面例子一樣簡單的,一般類都會傾向將實例對象創建為有初始狀態的,所以在類中可能會定義一個__init__的魔法方法,這個方法就可以幫助接收、傳入參數。

而一個類如果定義了__init__方法,那么在類對象實例化的過程中就會自動為新創建的實例化對象調用__init__方法,請看下面這個例子。

class Coordinates: def __init__(self,x,y): self.x = x self.y = y def print_coor(self): print(’當前坐標為(%s,%s)’%(self.x,self.y))

可以看到在__init__()中傳入了參數x和y,然后在print_coor中需要接收參數x和y,接下來通過實例化這個類對象,驗證一下參數是否能通過__init__()傳遞到類的實例化操作中。

In[9]:coor = Coordinates(5,3)In[10]:coor.print_coor()Out[10]:當前坐標為(5,3)

繼承

所謂繼承就是一個新類在另一個類的基礎上構建而成,這個新類被稱作子類或者派生類,而另一個類被稱作父類、基類或者超類,而子類會繼承父類中已有的一些屬性和方法。

class Mylist(list): passlist_ = Mylist()list_.append(1)print(list_)’’’ [1] ’’’

比如上面這個例子,我并沒有將list_定義成一個列表,但它卻能調用append方法。原因是類Mylist繼承于list這個基類,而list_又是Mylist的一個實例化對象,所以list_也會擁有父類list擁有的方法。

當然可以通過自定義類的形式實現兩個類之間的繼承關系,我們定義Parent和Child兩個類,Child中沒有任何屬性和方法,只是繼承于父類Parent。

class Parent: def par(self): print(’父類方法’)class Child(Parent): passchild = Child()child.par()’’’父類方法’’’

覆蓋

當子類中定義了與父類中同名的方法或者屬性,則會自動覆蓋父類對應的方法或屬性,還是用上面這個例子實現一下,方便理解。

class Parent: def par(self): print(’父類方法’)class Child(Parent): def par(self): print(’子類方法’)child = Child()child.par()’’’子類方法’’’

可以看到子類Child中多了一個和父類Parent同名的方法,再實例化子類并調用這個方法時,最后調用的是子類中的方法。Python中繼承也允許多重繼承,也就是說一個子類可以繼承多個父類中的屬性和方法,但是這類操作會導致代碼混亂,所以大多數情況下不推薦使用,這里就不過多介紹了。

多態

多態比較簡單,比如定義兩個類,這兩個類沒有任何關系,只是兩個類中有同名的方法,而當兩個類的實例對象分別調用這個方法時,不同類的實例對象調用的方法也是不同的。

class XiaoMing: def introduce(self): print('我是小明')class XiaoHong: def introduce(self): print('我是小紅')

上面這兩個類中都有introduce方法,我們可以實例化一下兩個類,利用實例對象調用這個方法實現一下多態。

In[12]:ming = XiaoMing()In[13]:hong = XiaoHong()In[14]:ming.introduce()Out[14]:我是小明In[15]:hong.introduce()Out[15]:我是小紅

常用BIF

1、issubclass(class,classinfo)

判斷一個類是否是另一個類的子類,如果是則返回True,反之則返回False。

class Parent: passclass Child(Parent): passprint(issubclass(Child,Parent))’’’True’’’

需要注意的有兩點:

1.第二個參數不僅可以傳入類,也可以傳入由類組成的元組。 2.一個類被判定為自身的子類,也就是說這兩個參數傳入同一個類時,也會返回True。

print(issubclass(Parent,Parent))’’’True’’’

2、isinstance(object,classinfo)

判斷一個對象是否為一個類的實例對象,如果是則返回True,反之則返回False。

class Parent: passclass Child: passp = Parent()c = Child()print(isinstance(p,Parent,Child))#Trueprint(isinstance(c,Parent))#False

需要注意的有兩點:

1.第二個參數不僅可以傳入類,也可以傳入由類組成的元組。 2.如果第一個參數傳入的不是一個對象,則總是返回False。

3、hasattr(object,name)

判斷一個實例對象中是否包含一個屬性,如果是則返回True,反之則返回False。

class Parent: height = 100p = Parent()print(hasattr(p,’height’))’’’True’’’

需要注意的是第二個參數name必須為字符串形式傳入,如果不是則會返回False。

以上就是簡述 Python 的類和對象的詳細內容,更多關于Python 的類和對象的資料請關注好吧啦網其它相關文章!

標簽: Python 編程
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
天堂中文av在线资源库| 黄色日韩在线| 久久亚洲影院| 国产精品女主播一区二区三区| 日韩av福利| 欧美成人亚洲| 亚洲精品黄色| 成人午夜毛片| 狠狠久久婷婷| 99视频一区| 美国欧美日韩国产在线播放| 精品理论电影在线| 日韩不卡在线观看日韩不卡视频| 国产理论在线| 奶水喷射视频一区| 国产aⅴ精品一区二区三区久久 | 日韩精品第一区| 黄色在线网站噜噜噜| 欧美精选一区二区三区| 久久婷婷久久| 国产精品av久久久久久麻豆网| 中文av在线全新| 国产精品xxx| 亚洲欧美日韩高清在线| 国产精品久久久免费| 激情五月综合网| 亚洲区第一页| 国产成人调教视频在线观看| 免费成人在线观看| 国产婷婷精品| 在线精品亚洲| 亚洲欧美不卡| 久久精品天堂| 久久成人av| 在线精品一区二区| 999视频精品| 亚洲精品一级| 国产一区二区三区亚洲| 日本va欧美va瓶| 精品三级国产| 国产精品国码视频| 亚洲欧美久久| 欧美日韩精品免费观看视欧美高清免费大片 | 福利精品在线| 精品国产精品久久一区免费式| 国产欧美在线观看免费| 99国产精品| 国产成人在线中文字幕| 久久亚洲图片| 成人污污视频| 国产一区亚洲| 中文字幕免费一区二区| 欧美天堂一区| 欧美黑人巨大videos精品| 婷婷综合国产| 免费日韩视频| 性感美女一区二区在线观看| 亚洲综合日本| 五月天av在线| 亚洲乱亚洲高清| 国产成年精品| 国产探花一区在线观看| 麻豆一区二区在线| 亚洲成av在线| 久热精品在线| 国产欧美综合一区二区三区| 国产高清日韩| 麻豆高清免费国产一区| 蜜桃久久久久久| 欧美成人基地 | 麻豆久久久久久| 午夜av一区| 亚洲精品观看| 成人在线视频免费看| 夜夜嗨网站十八久久 | 精品捆绑调教一区二区三区| 亚州av一区| 特黄特色欧美大片| 亚洲18在线| 六月丁香综合| 水野朝阳av一区二区三区| 国产精品欧美在线观看| 悠悠资源网久久精品| 狠狠躁少妇一区二区三区| 亚洲精品成人一区| 日韩高清成人| 久久激情一区| 蜜桃av.网站在线观看| 91成人小视频| 日韩中文字幕视频网| 日本综合字幕| 亚洲成人免费| 国产精品毛片一区二区三区| 国产精品视区| 日韩一区二区三区免费播放| 国产精品亚洲综合在线观看| 蜜桃视频欧美| 中文字幕一区二区精品区| 国产免费久久| 国产精选一区| 国产乱码精品一区二区亚洲| 奇米亚洲欧美| 啪啪亚洲精品| 亚洲精选av| 超碰成人av| 日韩精品欧美大片| 先锋影音国产一区| 偷拍亚洲精品| 欧美一级精品| 视频一区二区三区在线| 美女国产精品| 亚洲欧美日韩精品一区二区 | 日韩avvvv在线播放| 亚洲深爱激情| 桃色一区二区| 欧美日韩亚洲三区| а√在线中文在线新版| 久久毛片亚洲| 久久亚洲欧洲| 国产精品亚洲欧美| 久久99视频| aⅴ色国产欧美| 亚洲一本视频| 激情欧美日韩一区| av高清一区| 日韩影片在线观看| 久久a爱视频| sm久久捆绑调教精品一区| 欧美日韩调教| 久久久久午夜电影| 亚洲中字黄色| 蜜桃精品视频| 久久午夜影视| 久久久久免费| 国产成人精品福利| 国产欧美91| 国产精品白丝一区二区三区| 免费国产自久久久久三四区久久 | 亚洲精品成人图区| av一区在线| 亚洲大全视频| 一级欧美视频| 国产精品红桃| 麻豆中文一区二区| 天堂√8在线中文| 国产亚洲一卡2卡3卡4卡新区| 久久中文字幕二区| 91精品国产经典在线观看| 亚洲激情黄色| 久久久一二三| 欧美色综合网| 亚洲精品一二三区区别| 日韩在线黄色| 国产99精品一区| 麻豆视频观看网址久久| 国产精品香蕉| 高清av一区| 色婷婷久久久| 国产99亚洲| 久久国产高清| 黄页网站一区| 精品中文字幕一区二区三区av| 狠狠久久伊人中文字幕| 成人综合一区| 亚洲一区二区三区高清不卡| 极品日韩av| 91视频精品| 性感美女一区二区在线观看| 一区二区电影在线观看| 麻豆视频在线看| 牛牛精品成人免费视频| 日韩精品五月天| 国产精品一区二区99| 精品欠久久久中文字幕加勒比| 日韩精品一二三区| 69堂免费精品视频在线播放| 精品国产日韩欧美精品国产欧美日韩一区二区三区| 国产精品久久乐| 国产一区二区三区日韩精品| 日韩一区中文| 欧美伊人久久| 五月综合激情| 国产色99精品9i| av在线最新| 国产精品尤物| 日本综合精品一区| 国产精品videossex| 日本精品不卡| 久久精品99国产精品| 免费成人性网站| 久久这里只有精品一区二区| 在线日韩视频| 欧美激情视频一区二区三区免费 | 国产剧情一区二区在线观看| 首页国产欧美久久| 国产精品一站二站| 在线综合欧美| 色老板在线视频一区二区| 激情久久99| 亚洲一二av|