亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > Python > 正文

Python中staticmethod和classmethod的作用與區別

2020-02-15 23:07:56
字體:
來源:轉載
供稿:網友

一般來說,要使用某個類的方法,需要先實例化一個對象再調用方法。

而使用@staticmethod或@classmethod,就可以不需要實例化,直接類名.方法名()來調用。

這有利于組織代碼,把某些應該屬于某個類的函數給放到那個類里去,同時有利于命名空間的整潔。

既然@staticmethod和@classmethod都可以直接類名.方法名()來調用,那他們有什么區別呢

從它們的使用上來看

@staticmethod不需要表示自身對象的self和自身類的cls參數,就跟使用函數一樣。 @classmethod也不需要self參數,但第一個參數需要是表示自身類的cls參數。

如果在@staticmethod中要調用到這個類的一些屬性方法,只能直接類名.屬性名或類名.方法名。

而@classmethod因為持有cls參數,可以來調用類的屬性,類的方法,實例化對象等,避免硬編碼。

要明白,什么是實例方法、靜態方法和類方法:

class Demo(object): def instance_method(self, your_para): """ this is an instance_method you should call it like the follow: a = Demo() a.instance_method(your_para) plus: in python, we denote 'cls' as latent para of Class while 'self' as latent para of the instance of the Class :param your_para:  :return:  """ print("call instance_method and get:", your_para) @classmethod def class_method(cls, your_para): """ this is a class_method you can call it like the follow: method1: a = Demo() a.class_method(your_para) method2: Demo.class_method plus: in python, we denote 'cls' as latent para of Class while 'self' as latent para of the instance of the Class :param your_para:  :return:  """ print("call class_method and get:", your_para) @staticmethod def static_method(your_para): """ this is a static_method and you can call it like the  methods of class_method :param your_para:  :return:  """ print("call static_method and get:", your_para)

雖然類方法在調用的時候沒有顯式聲明cls,但實際上類本身是作為隱含參數傳入的。這就像實例方法在調用的時候也沒有顯式聲明self,但實際上實例本身是作為隱含參數傳入的。

對于靜態函數,我們一般把與類無關也與實例無關的函數定義為靜態函數。例如入口檢查的函數就最好定義成靜態函數。

類方法的妙處, 在繼承中的作用:

class Fruit(object): total = 0 # 這是一個類屬性 @classmethod def print_total(cls): print('this is the ', cls, '.total:', cls.total, ' and its id: ', id(cls.total)) # cls是類本身,打印類屬性total的值 print('this is the Fruit.total:', Fruit.total, 'and its id: ', id(Fruit.total)) print("=======================") @classmethod def set(cls, value): cls.total = valueclass Apple(Fruit): passclass Orange(Fruit): passapp1 = Apple()app1.set(10)app1.print_total()Apple.print_total()Fruit.set(2)app1.print_total()Fruit.print_total()"""output:this is the <class '__main__.Apple'> .total: 10 and its id: 1355201264this is the Fruit.total: 0 and its id: 1355200944=======================this is the <class '__main__.Apple'> .total: 10 and its id: 1355201264this is the Fruit.total: 0 and its id: 1355200944=======================this is the <class '__main__.Apple'> .total: 10 and its id: 1355201264this is the Fruit.total: 2 and its id: 1355201008=======================this is the <class '__main__.Fruit'> .total: 2 and its id: 1355201008this is the Fruit.total: 2 and its id: 1355201008======================="""            
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
色播久久人人爽人人爽人人片视av| 国产精品视频公开费视频| 国产精品jvid在线观看蜜臀| 欧美夫妻性视频| 久久久久久久爱| 欧洲午夜精品久久久| 欧美亚洲视频在线观看| 96pao国产成视频永久免费| 日韩在线中文字幕| 久久天天躁狠狠躁夜夜躁2014| 欧美精品在线视频观看| 日韩国产激情在线| 亚洲精品之草原avav久久| 国产69精品久久久久9| 国产日韩精品入口| 国产精品综合久久久| 色偷偷888欧美精品久久久| 久久精品国产v日韩v亚洲| 97免费中文视频在线观看| 国产伦精品一区二区三区精品视频| 亚洲精品视频免费在线观看| 91精品国产自产在线观看永久| 国产拍精品一二三| 亚洲xxxxx性| 伊人久久大香线蕉av一区二区| 欧美日韩在线看| 国产精品高潮呻吟视频| 国产综合福利在线| 久久免费国产精品1| 国产成人亚洲精品| 日韩精品中文字幕有码专区| 精品久久久国产精品999| 精品中文字幕在线| 5566日本婷婷色中文字幕97| 97高清免费视频| 欧美xxxx综合视频| 91精品国产高清自在线| 成人福利在线视频| 亚洲天堂成人在线视频| 色伦专区97中文字幕| 青青久久aⅴ北条麻妃| 亚洲一级黄色av| 久久久久久伊人| 日韩免费在线播放| 97国产一区二区精品久久呦| 亚洲高清一区二| 成人国产精品免费视频| 国产精品va在线播放| 精品视频在线导航| 成人妇女免费播放久久久| 好吊成人免视频| 777午夜精品福利在线观看| 久久99国产综合精品女同| 麻豆乱码国产一区二区三区| 欧美激情第一页xxx| 亚洲国产精品久久久| 欧美激情欧美激情在线五月| 久久久久成人网| 91wwwcom在线观看| 91精品视频观看| 97视频人免费观看| 国产一区二区精品丝袜| 亚洲一区二区少妇| 国产精品久久久999| 国产精品视频永久免费播放| 亚洲香蕉伊综合在人在线视看| 日韩精品视频在线播放| 久久精品国产精品| 欧美视频在线视频| 57pao成人国产永久免费| 超薄丝袜一区二区| 欧美一区二区视频97| 欧美大片大片在线播放| 欧美一级bbbbb性bbbb喷潮片| 91极品视频在线| 自拍偷拍亚洲在线| 怡红院精品视频| 亚洲大胆人体视频| 91精品久久久久久久久中文字幕| 久久资源免费视频| 欧美精品午夜视频| 久久久久久一区二区三区| 中文字幕日韩综合av| 尤物九九久久国产精品的特点| 国产成人久久久| 国产精品尤物福利片在线观看| 亚洲天堂网站在线观看视频| 成人国产亚洲精品a区天堂华泰| 国产成人极品视频| 丝袜美腿精品国产二区| 亚洲国内精品在线| 国产中文欧美精品| 亚洲天堂免费在线| 不卡av电影在线观看| 日本高清视频精品| 亚洲精品久久在线| 亚洲视频777| 自拍偷拍亚洲精品| 日韩欧美精品免费在线| 91高清免费视频| 国产成人啪精品视频免费网| 国产99视频精品免视看7| x99av成人免费| 久青草国产97香蕉在线视频| 亚洲自拍偷拍视频| 中文字幕日本欧美| 性欧美视频videos6一9| 国产一区二区美女视频| 日韩精品视频免费专区在线播放| 91视频-88av| 国产一区二区在线免费视频| 国内精品久久久久影院 日本资源| 国产亚洲综合久久| 欧美精品精品精品精品免费| 国产精品www色诱视频| 久久久这里只有精品视频| 久久在线精品视频| 亚洲一区二区三区视频| 国产精品三级久久久久久电影| 91免费人成网站在线观看18| 亚洲免费视频网站| 国产精品视频26uuu| 97成人精品区在线播放| 欧美xxxx18国产| 久久中文久久字幕| 亚洲自拍偷拍网址| 午夜精品99久久免费| 国产999在线| 国内精品免费午夜毛片| 国产剧情久久久久久| 91久热免费在线视频| 亚洲free性xxxx护士白浆| 成人福利视频网| 91国内揄拍国内精品对白| 国产精品电影在线观看| 精品国产一区二区三区久久久狼| 亚洲国产美女精品久久久久∴| 欧美激情aaaa| 在线成人激情黄色| 欧美成人午夜影院| 亚洲精品在线91| 懂色av一区二区三区| 久久久久久久成人| 欧美激情中文字幕乱码免费| 91亚洲精品久久久| 国产精品免费视频久久久| 国产日本欧美一区二区三区| 91精品成人久久| 久久亚洲综合国产精品99麻豆精品福利| 亚洲第一区中文字幕| 欧美电影免费观看大全| 欧美亚洲国产日韩2020| 日韩av色在线| 午夜精品一区二区三区在线视频| www.美女亚洲精品| 亚洲视频免费一区| 日韩av在线影院| 国产欧美婷婷中文| 欧美大片在线看| 97香蕉久久超级碰碰高清版| 亚洲一区二区久久久| 久久精品福利视频| 91精品视频一区| 日本免费在线精品|