最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

基于python中staticmethod和classmethod的區(qū)別(詳解)

 更新時間:2017年10月24日 09:54:42   作者:wswang  
下面小編就為大家?guī)硪黄趐ython中staticmethod和classmethod的區(qū)別(詳解)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

例子

class A(object):
  def foo(self,x):
    print "executing foo(%s,%s)"%(self,x)

  @classmethod
  def class_foo(cls,x):
    print "executing class_foo(%s,%s)"%(cls,x)

  @staticmethod
  def static_foo(x):
    print "executing static_foo(%s)"%x  

a=A()

上述類有三個函數(shù),使用如下:

a.foo(1)
# executing foo(<__main__.A object at 0xb7dbef0c>,1)

-----------------------------------------------------------------

a.class_foo(1)
# executing class_foo(<class '__main__.A'>,1)

A.class_foo(1)
# executing class_foo(<class '__main__.A'>,1)

-----------------------------------------------------------------

a.static_foo(1)
# executing static_foo(1)

A.static_foo('hi')
# executing static_foo(hi)

區(qū)別

• foo()的調(diào)用者必須是類A的一個實例,class_foo()與static_foo()的調(diào)用者既可以是類也可以是某個實例

• 參數(shù)不同,foo() 參數(shù)為self和其他參數(shù),class_foo()參數(shù)使用類(cls)替換了self,static_foo()則只有參數(shù),沒有self和類(cls)

• a.foo(1)中的foo()與a是綁定的,class_foo()是與類綁定的,而static_foo()與這兩者都沒有綁定,可以使用print來查看,如下:

```
print(a.foo)
# <bound method A.foo of <main.A object at 0xb7d52f0c>>

print(a.class_foo)
# <bound method type.class_foo of <class 'main.A'>>

print A.class_foo
<bound method classobj.class_foo of >

print(a.static_foo)
# 
print(A.static_foo)
# 
```

作用

• 使用場景:classmethod在一些工廠類的情況下使用較多,也就是說OOP里繼承的時候使用,staticmethod一般情況下可以替換為外部的函數(shù),后者繼承的時候不可更改,和C++/JAVA中的靜態(tài)方法很相似

• 有利于組織代碼,同時有利于命名空間的整潔

以上這篇基于python中staticmethod和classmethod的區(qū)別(詳解)就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • wxPython定時器wx.Timer簡單應用實例

    wxPython定時器wx.Timer簡單應用實例

    這篇文章主要介紹了wxPython定時器wx.Timer簡單應用,實例分析了Python使用wxPython創(chuàng)建窗口應用程序及定時器的相關(guān)使用技巧,需要的朋友可以參考下
    2015-06-06
  • Sentry錯誤日志監(jiān)控使用方法解析

    Sentry錯誤日志監(jiān)控使用方法解析

    這篇文章主要介紹了Sentry錯誤日志監(jiān)控使用方法解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-11-11
  • python連接sql server亂碼的解決方法

    python連接sql server亂碼的解決方法

    為解決python連接sql server是出現(xiàn)的亂碼,需要在連接sql server 時指定字符集utf8(client charset = UTF-8),python環(huán)境制定了字符集變量(#coding=utf-8 )
    2013-01-01
  • 使用Python橫向合并excel文件的實例

    使用Python橫向合并excel文件的實例

    今天小編就為大家分享一篇使用Python橫向合并excel文件的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-12-12
  • Python使用socket的UDP協(xié)議實現(xiàn)FTP文件服務功能

    Python使用socket的UDP協(xié)議實現(xiàn)FTP文件服務功能

    這篇文章主要介紹了Python使用socket的UDP協(xié)議實現(xiàn)FTP文件服務,本示例主要是用Python的socket,使用UDP協(xié)議實現(xiàn)一個FTP服務端、FTP客戶端,用來實現(xiàn)文件的傳輸,需要的朋友可以參考下
    2023-10-10
  • Python3利用Dlib實現(xiàn)攝像頭實時人臉檢測和平鋪顯示示例

    Python3利用Dlib實現(xiàn)攝像頭實時人臉檢測和平鋪顯示示例

    這篇文章主要介紹了Python3利用Dlib實現(xiàn)攝像頭實時人臉檢測和平鋪顯示示例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-02-02
  • python print 按逗號或空格分隔的方法

    python print 按逗號或空格分隔的方法

    下面小編就為大家分享一篇python print 按逗號或空格分隔的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-05-05
  • python3+selenium實現(xiàn)qq郵箱登陸并發(fā)送郵件功能

    python3+selenium實現(xiàn)qq郵箱登陸并發(fā)送郵件功能

    這篇文章主要為大家詳細介紹了python3+selenium實現(xiàn)qq郵箱登陸,并發(fā)送郵件功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-01-01
  • python格式化輸出format()函數(shù)常見用法和格式選項

    python格式化輸出format()函數(shù)常見用法和格式選項

    這篇文章主要介紹了python格式化輸出format()函數(shù)常見用法和格式選項的相關(guān)資料,format方法是一種強大的字符串格式化工具,它允許你將變量或表達式插入到字符串中,并根據(jù)需要進行格式化,需要的朋友可以參考下
    2025-03-03
  • Python全景系列之模塊與包全面解讀

    Python全景系列之模塊與包全面解讀

    這篇文章將帶大家深入探討Python模塊與包的基本概念,使用方法以及其在實際項目中的應用,同時也會揭示一些鮮為人知,卻又實用的技術(shù)細節(jié)
    2023-05-05

最新評論

荔浦县| 城口县| 姚安县| 栖霞市| 富民县| 岳阳市| 上林县| 海南省| 高州市| 永兴县| 汤阴县| 广东省| 林州市| 伊金霍洛旗| 区。| 乳源| 盈江县| 临泉县| 扬州市| 高邑县| 石泉县| 元谋县| 安化县| 瑞金市| 额尔古纳市| 当涂县| 禄劝| 蓝田县| 南澳县| 衡水市| 安多县| 阳朔县| 尼勒克县| 西林县| 河北省| 小金县| 太谷县| 永修县| 赫章县| 读书| 仁化县|