小編給大家分享一下python里的self怎么用,希望大家閱讀完這篇文章后大所收獲,下面讓我們一起去探討吧!
self的用法
1.自身 指的是實例本身(Instance)
2.由于"自身"這個詞,都是相對而言的"其它"說的,指的是類class,和其它變量,比如局部變量,全局變量
此處的self,是個對象(Object),是當前類的實例。
Python中為什么要有self
在類的代碼(函數)中,需要訪問當前的實例中的變量和函數的,即訪問(實例)Instance中的
對應的變量(屬性,property):Instance.ProperyNam,去讀取之前的值和寫入的值
(2)調用對應的函數(function):Instance.function(),即執行對應的動作
而需要訪問實例的變量和調用實例的函數,當然需要對應的實例Instance對象本身
而Python中就規定好了,函數的第一個參數,就必須是實例對象本身,并且,建議,把其名寫為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') """當程序運行時,會報錯,takes 0 positional arguments but 1 was given 這是因為這個函數不需要參數,但是函數卻被傳遞了一個參數,可是我們調用sayhi()函數的時候, 并沒有寫參數。為什么會出現這樣的參數Error 這是因為"每一個相關聯的方法調用都自動傳遞實參self,它是一個指向實例本身的引用__init__中的 參數self會自動傳遞給sayhi(),而sayhi()在定義的時候沒有形參,就會報錯。 """ d.sayhi() # d.sayhi(self),也會報錯
看完了這篇文章,相信你對python里的self怎么用有了一定的了解,想了解更多相關知識,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。