Python類中self的作用

舉例如下:

class Person:

    def setName(self,name):
        self.name = name
        self.inputname = name
        input1 = name
    
    def getName(self):
        return self.name
    
    def greet(self):
        print "Hello world! I'm %s ." % self.name

其中译仗,self是對于對象自身的引用。

我們對比 self.inputnameinput1 這兩個變量官觅,都賦值為 name纵菌,那么這兩個值有什么區(qū)別呢?

在這里缰猴,self 改變了變量的作用域产艾。
不加 self 的變量是局部變量疤剑,作用域是當前函數滑绒;加了 self 的變量是實例變量,作用域是當前實例隘膘。

也就是疑故,我們在外部將類 Person 實例化時,可以調用它的 inputname 變量弯菊,因為這個變量是實例變量纵势,作用域當前實例,卻調用不了 input1 變量管钳,因為這個變量是局部變量钦铁,只能在setName 函數中使用。

self 是什么對象才漆?

我們這里假設 lil = Person()牛曹,其中 lil 是 Person 類的一個實例。
當我們調用 lil 的 setName 和 getName 或 greet 方法時醇滥,lil 自動將自己作為第一個參數黎比,傳入函數中超营,因此形象的稱為 self
所以 self 是一個實例,指的實例本身阅虫。

通過使用 self演闭,我們可以在其成員方法中訪問他們要對其特性進行操作的對象本身了。

換句話說

這樣說很拗口颓帝,換句話說米碰,我們通過使用 self,將 attribute 的作用域從當前函數 變成 當前實例购城,這樣這個 attribute 就可以在整個實例中都有效见间。這樣便于我們在不同的成員方法中對這個 attribute 進行操作。例如上面例子中的 self.name 工猜,因為使用了 self米诉,我們在 getName 和 greet 中均可以使用該實例變量。

而且篷帅,對于實例 lil史侣,我們也可以直接調用 name 這個attribute,也就是 lil.name魏身,是有效的惊橱。但是 lil.input1 是無效的,會提示“類里面沒有這個屬性”箭昵。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末税朴,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子家制,更是在濱河造成了極大的恐慌正林,老刑警劉巖,帶你破解...
    沈念sama閱讀 207,113評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件颤殴,死亡現場離奇詭異觅廓,居然都是意外死亡,警方通過查閱死者的電腦和手機涵但,發(fā)現死者居然都...
    沈念sama閱讀 88,644評論 2 381
  • 文/潘曉璐 我一進店門杈绸,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人矮瘟,你說我怎么就攤上這事瞳脓。” “怎么了澈侠?”我有些...
    開封第一講書人閱讀 153,340評論 0 344
  • 文/不壞的土叔 我叫張陵劫侧,是天一觀的道長。 經常有香客問我埋涧,道長板辽,這世上最難降的妖魔是什么奇瘦? 我笑而不...
    開封第一講書人閱讀 55,449評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮劲弦,結果婚禮上耳标,老公的妹妹穿的比我還像新娘。我一直安慰自己邑跪,他們只是感情好次坡,可當我...
    茶點故事閱讀 64,445評論 5 374
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著画畅,像睡著了一般砸琅。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上轴踱,一...
    開封第一講書人閱讀 49,166評論 1 284
  • 那天症脂,我揣著相機與錄音,去河邊找鬼淫僻。 笑死诱篷,一個胖子當著我的面吹牛,可吹牛的內容都是我干的雳灵。 我是一名探鬼主播棕所,決...
    沈念sama閱讀 38,442評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼悯辙!你這毒婦竟也來了琳省?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 37,105評論 0 261
  • 序言:老撾萬榮一對情侶失蹤躲撰,失蹤者是張志新(化名)和其女友劉穎针贬,沒想到半個月后,有當地人在樹林里發(fā)現了一具尸體茴肥,經...
    沈念sama閱讀 43,601評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡坚踩,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,066評論 2 325
  • 正文 我和宋清朗相戀三年荡灾,在試婚紗的時候發(fā)現自己被綠了瓤狐。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,161評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡批幌,死狀恐怖础锐,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情荧缘,我是刑警寧澤皆警,帶...
    沈念sama閱讀 33,792評論 4 323
  • 正文 年R本政府宣布,位于F島的核電站截粗,受9級特大地震影響信姓,放射性物質發(fā)生泄漏鸵隧。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,351評論 3 307
  • 文/蒙蒙 一意推、第九天 我趴在偏房一處隱蔽的房頂上張望豆瘫。 院中可真熱鬧,春花似錦菊值、人聲如沸外驱。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,352評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽昵宇。三九已至,卻和暖如春儿子,著一層夾襖步出監(jiān)牢的瞬間瓦哎,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,584評論 1 261
  • 我被黑心中介騙來泰國打工柔逼, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留杭煎,地道東北人。 一個月前我還...
    沈念sama閱讀 45,618評論 2 355
  • 正文 我出身青樓卒落,卻偏偏與公主長得像羡铲,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子儡毕,可洞房花燭夜當晚...
    茶點故事閱讀 42,916評論 2 344

推薦閱讀更多精彩內容

  • 本章將會介紹 自動引用計數的工作機制自動引用計數實踐類實例之間的循環(huán)強引用解決實例之間的循環(huán)強引用閉包引起的循環(huán)強...
    寒橋閱讀 894評論 0 0
  • 86.復合 Cases 共享相同代碼塊的多個switch 分支 分支可以合并, 寫在分支后用逗號分開。如果任何模式...
    無灃閱讀 1,347評論 1 5
  • 7月22日早上四點多就爬起來费坊,跟著爸爸媽媽一起去天河機場趕飛機倒槐。飛機是早上八點五十五,十點四十五到的廣州附井,在廣州白...
    小方_2d82閱讀 219評論 3 1
  • 幸存偏差:你以為別人成功了讨越,你也可以成功,其實你并不知道他經歷了多少次失敗 游泳選手身材錯覺:你以為練游泳可以練出...
    請叫我李大俠閱讀 257評論 0 0
  • 性子好急永毅,真的好急把跨,可是孩子在做不愿意做的事情的時候,總是拖沼死,能拖一分鐘都好着逐,孩子的作業(yè)之前看了一遍又一遍,把他容...
    里娃閱讀 128評論 0 0