免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費(fèi)電子書(shū)等14項(xiàng)超值服

開(kāi)通VIP
在python的class中的,self到底是什么?

答案:self可以理解為一個(gè)字典變量,內(nèi)部存的就是對(duì)象的數(shù)據(jù)屬性。如:{'name':'zhang','age':'18'}就是這些。

注意只有數(shù)據(jù)屬性,并沒(méi)有創(chuàng)建新的類的方法。  類----->通過(guò)實(shí)例化生成----對(duì)象---->(對(duì)象只是一串類似于字典的數(shù)據(jù),沒(méi)有把類的里的方法復(fù)制給你,python沒(méi)有new這個(gè)方法!)

在python2中分為

經(jīng)典類:

class Box:

  pass

新式類:

class Box(object):

  pass

 

在python3中,只有新式類:

class Box:

  pass

 

在python的class中的,self到底是什么?

 

上實(shí)例:

class.py

 1 class Box: 2     def __init__(self, boxname, size, color): 3         self.boxname = boxname 4         self.size = size 5         self.color = color  # self就是用于存儲(chǔ)對(duì)象屬性的集合,就算沒(méi)有屬性self也是必備的 6  7     def open(self, myself): 8         print('-->用自己的myself,打開(kāi)那個(gè)%s,%s的%s' % (myself.color, myself.size, myself.boxname)) 9         print('-->用類自己的self,打開(kāi)那個(gè)%s,%s的%s' % (myself.color, myself.size, myself.boxname))10 11     def close(self):12         print('-->關(guān)閉%s,謝謝' % self.boxname)13 14 15 b = Box('魔盒', '14m', '紅色')16 b.close()17 b.open(b)  # 本來(lái)就會(huì)自動(dòng)傳一個(gè)self,現(xiàn)在傳入b,就會(huì)讓open多得到一個(gè)實(shí)例對(duì)象本身,print看看是什么。18 print(b.__dict__)  # 這里返回的就是self本身,self存儲(chǔ)屬性,沒(méi)有動(dòng)作。

以上代碼當(dāng)中:

 

self 就是 對(duì)象/實(shí)例 屬性的集合,

他們之間的關(guān)系如下:

1、Box是個(gè)類 ——》實(shí)例化——》b 對(duì)象/實(shí)例

 

2、Box類python中顯示為:<class '__main__.Box'>  (接下一行)

——》實(shí)例化:b=Box('魔盒', '14m', '紅色')  (接下一行)

——》得到對(duì)象/實(shí)例b,顯示為<__main__.Box object at 0x00000233857AA518> 

 

3、抽象體  (接下一行)

——》實(shí)例的過(guò)程  (接下一行)

——》得對(duì)對(duì)象,含有屬性:{'boxname': '魔盒', 'size': '14m', 'color': '紅色'},即self。

 

self看似是一整個(gè)對(duì)象,實(shí)際上描述明白一個(gè)類就是生產(chǎn)對(duì)象的過(guò)程,描述了self就是得到了對(duì)象。所以self內(nèi)的健值可以直接使用。

正如自然界中,一個(gè)有效的對(duì)象,必須包括:1、描述對(duì)象的屬性;2、對(duì)象的方法。

所以self是必須的,也是對(duì)象中重要的特性。

 

當(dāng)掌握了這個(gè)原理以后,我們?cè)囋囈韵碌拇a,感覺(jué)更加神奇。讓我們明白重要的是它的思路:

class02.py

class Box:    def myInit(mySelf, boxname, size, color):        mySelf.boxname = boxname        mySelf.size = size        mySelf.color = color  # 自己寫(xiě)一個(gè)初始化函數(shù),一樣奏效,甚至不用self命名。其它函數(shù)當(dāng)中用標(biāo)準(zhǔn)self        return mySelf  # 返回給實(shí)例化過(guò)程一個(gè)對(duì)象!神奇!并且含有對(duì)象屬性/字典    # def __init__(self, boxname, size, color):    #     self.boxname = boxname    #     self.size = size    #     self.color = color  #注釋掉原來(lái)標(biāo)準(zhǔn)的初始化    def open(self, myself):        print(self)        print('-->用自己的myself,打開(kāi)那個(gè)%s,%s的%s' % (myself.color, myself.size, myself.boxname))        print('-->用類自己的self,打開(kāi)那個(gè)%s,%s的%s' % (myself.color, myself.size, myself.boxname))    def close(self):        print('-->關(guān)閉%s,謝謝' % self.boxname)# 經(jīng)過(guò)改造,運(yùn)行結(jié)果和標(biāo)準(zhǔn)初始化沒(méi)區(qū)別b = Box().myInit('魔盒', '14m', '紅色')# b = Box('魔盒', '14m', '紅色')#注釋掉原來(lái)標(biāo)準(zhǔn)的初始化方法b.close()b.open(b)  # 本來(lái)就會(huì)自動(dòng)傳一個(gè)self,現(xiàn)在傳入b,就會(huì)讓open多得到一個(gè)實(shí)例對(duì)象本身,print看看是什么。print(b.__dict__)  # 這里返回的就是self本身,self存儲(chǔ)屬性,沒(méi)有動(dòng)作。

 

換個(gè)角度來(lái)講,

對(duì)類的操作有:1、定義屬性  2、調(diào)節(jié)方法的選項(xiàng)

  ——》在適當(dāng)?shù)脑O(shè)置以后《———

類對(duì)的反饋有:1、得到屬性  2、執(zhí)行方法

 

在類的函數(shù)當(dāng)中,self為什么是必要參數(shù),因?yàn)樗菍?duì)象的載體,可以理解成一個(gè)字典。

通過(guò)以下代碼演示:

 1 class Box: 2     def myInit(mySelf, boxname, size, color): 3         print(mySelf.__dict__)#顯示為{}空字典 4         mySelf.boxname = boxname 5         mySelf.__dict__['aa'] = 'w'#甚至可以像字典一樣操作 6         mySelf.size = size 7         mySelf.color = color  # 自己寫(xiě)一個(gè)初始化函數(shù),一樣奏效,甚至不用self命名。其它函數(shù)當(dāng)中用標(biāo)準(zhǔn)self 8         return mySelf  # 返回給實(shí)例化過(guò)程一個(gè)對(duì)象!神奇!并且含有對(duì)象屬性/字典 9 10     # def __init__(self, boxname, size, color):11     #     self.boxname = boxname12     #     self.size = size13     #     self.color = color  #注釋掉原來(lái)標(biāo)準(zhǔn)的初始化14 15     def open(self, myself):16         print(self)17         print('-->用自己的myself,打開(kāi)那個(gè)%s,%s的%s' % (myself.color, myself.size, myself.boxname))18         print('-->用類自己的self,打開(kāi)那個(gè)%s,%s的%s' % (myself.color, myself.size, myself.boxname))19 20     def close(self):21         print('-->關(guān)閉%s,謝謝' % self.boxname)22 23 24 # 經(jīng)過(guò)改造,運(yùn)行結(jié)果和標(biāo)準(zhǔn)初始化沒(méi)區(qū)別25 26 b = Box().myInit('魔盒', '14m', '紅色')27 # b = Box('魔盒', '14m', '紅色')#注釋掉原來(lái)標(biāo)準(zhǔn)的初始化方法28 b.close()29 b.open(b)  # 本來(lái)就會(huì)自動(dòng)傳一個(gè)self,現(xiàn)在傳入b,就會(huì)讓open多得到一個(gè)實(shí)例對(duì)象本身,print看看是什么。30 print(b.__dict__)  # 這里返回的就是self本身,self存儲(chǔ)屬性,沒(méi)有動(dòng)作。

執(zhí)行結(jié)果

 

{}-->關(guān)閉魔盒,謝謝<__main__.Box object at 0x0000026A2CBAA5F8>-->用自己的myself,打開(kāi)那個(gè)紅色,14m的魔盒-->用類自己的self,打開(kāi)那個(gè)紅色,14m的魔盒{'boxname': '魔盒', 'aa': 'w', 'size': '14m', 'color': '紅色'}

 

注意看:'aa':'w' ,成功設(shè)置完成

 

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開(kāi)APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
python 代碼中 self 有什么用途?
python 復(fù)習(xí)-類與對(duì)象
Python面向?qū)ο缶幊虖牧汩_(kāi)始(2)—— 與對(duì)象相互了解
python使用什么關(guān)鍵字定義類
python面向?qū)ο缶幊獭惻c繼承 初認(rèn)識(shí)
Python 定義類和屬性
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服