小編給大家分享一下python里的self怎么用,希望大家閱讀完這篇文章后大所收獲,下面讓我們一起去探討吧!
創(chuàng)新互聯(lián)公司致力于互聯(lián)網(wǎng)網(wǎng)站建設(shè)與網(wǎng)站營(yíng)銷,提供成都網(wǎng)站制作、網(wǎng)站建設(shè)、網(wǎng)站開發(fā)、seo優(yōu)化、網(wǎng)站排名、互聯(lián)網(wǎng)營(yíng)銷、小程序設(shè)計(jì)、公眾號(hào)商城、等建站開發(fā),創(chuàng)新互聯(lián)公司網(wǎng)站建設(shè)策劃專家,為不同類型的客戶提供良好的互聯(lián)網(wǎng)應(yīng)用定制解決方案,幫助客戶在新的全球化互聯(lián)網(wǎng)環(huán)境中保持優(yōu)勢(shì)。self的用法
1.自身 指的是實(shí)例本身(Instance)
2.由于"自身"這個(gè)詞,都是相對(duì)而言的"其它"說(shuō)的,指的是類class,和其它變量,比如局部變量,全局變量
此處的self,是個(gè)對(duì)象(Object),是當(dāng)前類的實(shí)例。
Python中為什么要有self
在類的代碼(函數(shù))中,需要訪問(wèn)當(dāng)前的實(shí)例中的變量和函數(shù)的,即訪問(wèn)(實(shí)例)Instance中的
對(duì)應(yīng)的變量(屬性,property):Instance.ProperyNam,去讀取之前的值和寫入的值
(2)調(diào)用對(duì)應(yīng)的函數(shù)(function):Instance.function(),即執(zhí)行對(duì)應(yīng)的動(dòng)作
而需要訪問(wèn)實(shí)例的變量和調(diào)用實(shí)例的函數(shù),當(dāng)然需要對(duì)應(yīng)的實(shí)例Instance對(duì)象本身
而Python中就規(guī)定好了,函數(shù)的第一個(gè)參數(shù),就必須是實(shí)例對(duì)象本身,并且,建議,把其名寫為self
#! usr/bin/python3.7 # -*- coding:utf-8 -*- """ class Person(object): def __init__(self, name, lang, website): self.name = name self.lang = lang self.website = website print('self', self) print('type of self', type(self)) class Dog(object): def __init__(self, name, dog_type): self.name = name self.dog_type = dog_type # def sayhi(): # print("hello I am dog, my name is ",self.name) def sayhi(self): print("hello ,I am dog, my name is ",self.name) if __name__ == '__main__': p = Person('xiaoliang', 'hanyu', 'www.mutual-helper.com') d = Dog('Caty', 'Firce') """當(dāng)程序運(yùn)行時(shí),會(huì)報(bào)錯(cuò),takes 0 positional arguments but 1 was given 這是因?yàn)檫@個(gè)函數(shù)不需要參數(shù),但是函數(shù)卻被傳遞了一個(gè)參數(shù),可是我們調(diào)用sayhi()函數(shù)的時(shí)候, 并沒有寫參數(shù)。為什么會(huì)出現(xiàn)這樣的參數(shù)Error 這是因?yàn)?每一個(gè)相關(guān)聯(lián)的方法調(diào)用都自動(dòng)傳遞實(shí)參self,它是一個(gè)指向?qū)嵗旧淼囊胈_init__中的 參數(shù)self會(huì)自動(dòng)傳遞給sayhi(),而sayhi()在定義的時(shí)候沒有形參,就會(huì)報(bào)錯(cuò)。 """ d.sayhi() # d.sayhi(self),也會(huì)報(bào)錯(cuò)
看完了這篇文章,相信你對(duì)python里的self怎么用有了一定的了解,想了解更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)成都網(wǎng)站設(shè)計(jì)公司行業(yè)資訊頻道,感謝各位的閱讀!
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。