python靜態方法,類方法,屬性方法,實例方法

DAY 3. 靜態方法,類方法,屬性方法,實例方法

有四種方法,實例方法,類方法,靜態方法,屬性方法

  • 實例方法

實例方法的第一個參數是self,他會指向類的實例化對象,只能被對象調用,如

class Demo:def instanceMethod(self):print("this is a instance method")if __name__ == "__main__":demo = Demo()demo.instanceMethod()

用點調用時不需要傳入對象參數,python會把調用實例方法的對象作為實例方法的第一個參數傳入,等價于

if __name__ == '__main__':demo = Demo()Demo.instanceMethod(demo)
  • 類方法

使用裝飾器@classmethod。第一個參數必須是當前類對象,該參數名一般約定為“cls”,可以使用類(例如C.f())或實例(例如C()。f())調用類方法。 除了類之外,該實例被忽略。 如果為派生類調用類方法,則派生類對象將作為隱含的第一個參數傳遞。

class Demo:@classmethoddef classMethod(self):print("this is a class method")if __name__ == "__main__":demo = Demo()Demo.classMethod()demo.classMethod()

同樣是語法糖,用點調用時會自動把調用類方法的類或對象作為第一個參數傳入

  • 靜態方法

用 @staticmethod 裝飾的不帶 self 參數的方法叫做靜態方法,靜態方法不會接收隱式的第一個參數,類似于c++中的靜態方法,只是占用了類的命名空間,與類沒有聯系,了一使用類名或對象名調用

  • 屬性方法

用來將一個方法變成靜態屬性,使用修飾器@property

class C:def __init__(self):self._x = None@propertydef x(self):"""I'm the 'x' property."""return self._x@x.setterdef x(self, value):self._x = value@x.deleterdef x(self):del self._x

TODO : 有點難改天專門學

總結

方法修飾器調用使用場景(個人理解)
實例方法/只能被對象調用大多數場景
類方法@classmethod能被對象或類調用只操作類屬性
靜態方法@staticmethod能被對象或類調用不操作類中的屬性和方法
屬性方法@property按靜態屬性的方法調用(不加括號)TODO

參考文章
GitHub 關于python的面試題

Python靜態方法、類方法、屬性方法

Python面向對象靜態方法,類方法,屬性方法

Python 實例方法、類方法、靜態方法的區別與作用

python 文檔 staticmethod

python 文檔 classmethod

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/457607.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/457607.shtml
英文地址,請注明出處:http://en.pswp.cn/news/457607.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

ubuntu 軟件包降級

ubuntu 軟件包降級 sudo aptitude install libssl-dev 1. 是否接受該解決方案? [Y/n/?] n 2. 是否接受該解決方案? [Y/n/?] y 3. 您要繼續嗎? [Y/n/?] ysudo aptitude install libcairo21.4.10-1ubuntu4 # 強制降級 sudo aptitude forbid…

java后期發展方向_Java程序員的4個職業發展方向,該如何把握黃金5年?

在Java程序界流行著一種默認的說法叫“黃金5年”,意思是說,一個Java程序員從入職的時候算起,前五年我選擇直接影響著整個職業生涯的發展方向和薪資走向。而這5年,也決定了一個程序員能否成為職業大牛的可能。那么,在這…

python 類變量(屬性)和實例變量(屬性

DAY 4. 類變量(屬性)和實例變量(屬性) 類變量:在所有類的實例之間都可以共享的變量,類變量在所有對象間只保留一份 在類體中定義類的所有實例對象都可以訪問類變量類變量只能由類修改,實例對象…

MySQL 關聯表批量修改(數據同步)

update table1 t1 ,table2 t2 set t1.field1 t2.field2 where t1.id t2.id 轉載于:https://www.cnblogs.com/52php/p/5677908.html

sourcetree不好做到的一些git操作

2019獨角獸企業重金招聘Python工程師標準>>> 日常中我們有很多操作通過sourcetree就可以實現界面化操作,但是有一些場景不好去實現,這里總結下: 場景1:我們有個A分支,需要跟master分支合并等待上線&#xf…

vue大括號里接受一個函數_vue源碼探究(第四彈)

vue源碼探究(第四彈)結束了上一part的數據代理,這一部分主要講講vue的模板解析,感覺這個有點難理解,而且內容有點多,hhh。模板解析廢話不多說,先從簡單的入手。按照之前的套路,先舉一…

類級別的分裝 ---四種訪問級別

privateprivate成員為類的私有性質,僅有類本身和友元可以訪問;protected和private類似,區別于protected可以被該類所有派生類訪問;publicpublic的成員可以被外界的所有客戶代碼直接訪問published和public的區別僅在于published的成…

python自省與反射

DAY 5. python自省 這是很久之前寫的,當時對自省和反射的概念沒理解,學習Java以后多了一點理解,自省是獲取對象的能力,反射是操縱對象的能力,python中使用getattr()和setattr()實現反射,而其他的則是自省&…

vb.net 窗體接收鍵盤事件_(十五)C#WinFrom自定義控件系列-鍵盤(二)

前提入行已經7,8年了,一直想做一套漂亮點的自定義控件,于是就有了本系列文章。本系列文章將講解各種控件的開發及思路,歡迎各位批評指正。此系列控件開發教程將全部在原生控件基礎上進行重繪開發,目標的扁平化、漂亮、支持觸屏。如…

centos下cmake安裝

步驟一、安裝gcc等必備程序包(已安裝則略過此步,用gcc -v檢測) yum install -y gcc gcc-c make automake 步驟二、安裝wget (已安裝則略過此步) yum install -y wget 步驟三、獲取CMake源碼包 wget http://www.cmake.…

python 生成式,迭代器,生成器

DAY 6. 生成式,迭代器,生成器 6.1 生成式 6.1.1 列表生成式 list [index for index in range(10)]6.1.2 字典生成式 dict {zhangsan: 10,lisi: 12,wangwu: 18 } # 實現鍵值互換 dict {k:v for v,k in dict.items() if k > 12}6.1.3 集合生成式 # 100以內…

shell MAC 地址 校驗

/**************************************************************************************** shell MAC 地址 校驗* 說明:* 要對MAC地址進行校驗,記錄一下正則表達式寫法,有些方法在PC上驗證是可行的&…

移動端Web開發如何處理橫豎屏

<!Doctype html> <html> <head> <meta charset"utf-8"> <meta id"viewport" name"viewport" content"widthdevice-width,initial-scale1.0;"> <title>橫豎屏切換檢測</title> <style ty…

恩智浦智能車大賽2020_內蒙古科技大學第九屆智能車大賽校內公開賽總決賽

為了激發學生的創新意識&#xff0c;提高學生的動手能力&#xff0c;培養團隊合作意識&#xff0c;秉承“實踐源于真知&#xff0c;創新放飛夢想”的思想。2020年12月6日&#xff0c;內蒙古科技大學第九屆智能車大賽總決賽如約而至。本次大賽有來自各院系的223支隊伍報名參加了…

python格式化字符串的三種方法(%,format,f-string)

DAY 7. 格式化字符串 到目前為止&#xff0c;我所知道的&#xff0c;python格式化字符串有三種方法&#xff0c;第一是早期就有的%&#xff0c;其次是2.5之后的format(),還有就是3.6添加的f字符串調試 7.1 %格式化字符串 %格式化字符串是python最早的&#xff0c;也是能兼容…

Android App 優化之 ANR 詳解

為了便于閱讀, 應邀將Android App性能優化系列, 轉移到掘金原創上來.掘金的新出的"收藏集"功能可以用來做系列文集了. 今天先來聊聊ANR. 1, 你碰到ANR了嗎 在App使用過程中, 你可能遇到過這樣的情況: 恭喜你, 這就是傳說中的ANR. 1.1 何為ANR ANR全名Application Not…

微信高級群發接口正文亂碼解決方案

content里面的內空如果含有html標簽的話&#xff0c;需要對內容進行一下轉義。如果里面含有style".."類似于這樣的帶""號的內容的話&#xff0c;就更需要注意了。 foreach ($news as &$item) {foreach ($item as $key > $val){if ($key content){$…

python *args和**kwargs以及序列解包

DAY 8. *args和**kwargs *args&#xff1a;多值元組&#xff0c;**kwargs多值字典&#xff0c;他們是python函數傳參時兩個特殊的參數&#xff0c;args和kwargs并不是強制的&#xff0c;但習慣使用這兩個&#xff0c;如果在函數參數列表中聲明了*args&#xff0c;則允許傳遞任…

解讀直播連麥與點播加密

近年來&#xff0c;直播熱潮持續升溫。有需求就會有變革&#xff0c;直播的相關技術也在不斷更新&#xff0c;為直播行業帶來更好地服務。如&#xff1a;直播連麥與點播加密技術等。 直播連麥&#xff0c;即主播與連麥者通過互動直播中心進行實時互動&#xff0c;信息在云端混流…

血紅蛋白判斷access程序答案_普渡大學開發智能手機應用程序 幫助評估貧血癥情況...

醫生診斷貧血疾病的方法之一&#xff0c;就是通過觀察患者的眼皮&#xff0c;判斷眼皮是否發紅&#xff0c;從而判斷紅細胞的數量。但對醫生來說&#xff0c;面臨的挑戰是&#xff0c;這種簡單的測試不夠精確&#xff0c;無法不從患者身上抽取血樣就能給出診斷。美國普渡大學的…