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

淺談python 類方法/靜態(tài)方法

 更新時間:2020年09月18日 09:46:24   作者:聶發(fā)俊  
這篇文章主要介紹了python 類方法/靜態(tài)方法的相關資料,幫助大家更好的理解和學習python,感興趣的朋友可以了解下

1.類方法

類方法是從屬于"類對象"的方法。類對象可以通過裝飾器@classmethod來定義,具體格式如下:

@classmethod
def 類方法名(cls [, 形參列表]):
	方法體

要點如下:

  1. @classmethod必須位于方法的上面一行
  2. 第一個參數(shù)cls(class的縮寫,和前面筆記介紹的self類似),必須要有,代指"類對象"本身。
  3. 調用類方法格式:類名.類方法名(參數(shù)列表)。參數(shù)列表中不需要也不能給cls參數(shù)進行傳值,解釋器會自動賦值。
  4. 類方法中可以訪問實例屬性和實例方法會導致錯誤,因為有類不一定有對象。
  5. 子類繼承父類方法時,傳入cls是自身對象,而非父類對象。(后面的筆記會有介紹)

代碼示例:

class Student:
  count = 0    # 類屬性

  """定義方法"""
  @classmethod
  def print_count(cls):
    """cls參數(shù)代表類對象"""
    print(Student.count)


"""調用類方法"""
print("調用時,不傳遞cls參數(shù)")
Student.print_count()

運行結果:

調用時,不傳遞cls參數(shù)
0

2.靜態(tài)方法

在python中,允許定義于”類對象“無關的方法,稱為"靜態(tài)方法"。
"靜態(tài)方法"和在模塊中定義的普通方法沒有什么區(qū)別,只不過"靜態(tài)方法"放到了"類的名字變量空間",需要通過類調用。
靜態(tài)方法通過裝飾器@staticmethod來定義,格式如下:

@staticmethod
def 靜態(tài)方法名([形參列表]):
	方法體

要點如下:

  1. @staticmethod必須位于方法上面一行
  2. 調用靜態(tài)方法格式:類名.靜態(tài)方法名(參數(shù)列表)
  3. 靜態(tài)方法中訪問實例屬性和實例方法會導致錯誤

代碼示例:

class Student:
  count = 0      # 類屬性

  @staticmethod
  def add(a, b):
    """與類無關的靜態(tài)方法"""
    """因為靜態(tài)方法從屬于類,所以是可以操作類屬性和類方法"""
    print("{0}+{1}={2}".format(a, b, a+b))
    return a + b


# 調用靜態(tài)方法
Student.add(20, 30)

運行結果:

20+30=50
res=50

3.實例方法/類方法/靜態(tài)方法的區(qū)別

class MyClass:
  # 類屬性
  class_attr = 0

  def __init__(self, obj_attr):
    self.obj_attr = obj_attr

  def instance_method(self):
    return "instance method called", self

  @classmethod
  def class_method(cls):
    return "class method called", cls

  @staticmethod
  def static_method():
    return "static method called"


print("調用實例方法")
obj1 = MyClass("obj_attr1")
print(obj1.instance_method())

print("--" * 20)
print("調用類方法")
print(MyClass.class_method())

print("--" * 20)
print("調用靜態(tài)方法")
print(MyClass.static_method())

運行結果:

調用實例方法
('instance method called', <__main__.MyClass object at 0x10ca93310>)
----------------------------------------
調用類方法
('class method called', <class '__main__.MyClass'>)
----------------------------------------
調用靜態(tài)方法
static method called

注意: 以下討論的屬性、方法均指公開的類型,非私有的。

實例方法:

  1. 能讀取、修改實例屬性
  2. 能調用實例方法
  3. 能讀取、修改類屬性
  4. 能調用類方法
  5. 能調用類靜態(tài)方法
  6. 調用方式:對象名.實例方法名(參數(shù)列表),編譯器自動傳遞self參數(shù)

類方法:

  1. 不能讀取、修改實例屬性
  2. 不能用實例方法
  3. 能讀取、修改類屬性
  4. 能調用類方法
  5. 能調用類靜態(tài)方法
  6. 調用方式:類名.類方法名(參數(shù)列表),編譯器自動傳遞cls參數(shù)

靜態(tài)方法:

  1. 不能讀取、修改實例屬性
  2. 不能用實例方法
  3. 能讀取、修改類屬性
  4. 能調用類方法
  5. 能調用類靜態(tài)方法
  6. 調用方式: 類名.靜態(tài)方法名(參數(shù)列表),不需要cls參數(shù)
  7. 類方法和靜態(tài)方法,功能非常相近,可以相互替代, 但是從規(guī)范的角度來說,請按照實例方法操作對象,類方法操作類,靜態(tài)方法為和類無關的通用方法。

以上就是淺談python 類方法/靜態(tài)方法的詳細內容,更多關于類方法/靜態(tài)方法的資料請關注腳本之家其它相關文章!

相關文章

  • 教你如何用一行Python代碼實現(xiàn)GUI圖形界面

    教你如何用一行Python代碼實現(xiàn)GUI圖形界面

    GUI(圖形用戶界面),顧名思義就是用圖形的方式,來顯示計算機操作的界面,更加方便且直觀。本文將用一行代碼實現(xiàn)GUI界面的制作,需要的可以參考一下
    2022-05-05
  • Python數(shù)據(jù)類型之列表和元組的方法實例詳解

    Python數(shù)據(jù)類型之列表和元組的方法實例詳解

    這篇文章主要介紹了Python數(shù)據(jù)類型之列表和元組的相關知識,列表是一組有序項目的集合 ,可變的數(shù)據(jù)類型可 進行增刪改查,本文通過實例文字相結合的形式給大家介紹的非常詳細 ,需要的朋友可以參考下
    2019-07-07
  • python Django的顯示個人信息詳解

    python Django的顯示個人信息詳解

    這篇文章主要介紹了在Python的Django的顯示個人信息方法,需要的朋友可以參考下,希望能夠給你帶來幫助
    2021-09-09
  • Python??MkDocs優(yōu)雅地編寫文檔

    Python??MkDocs優(yōu)雅地編寫文檔

    在軟件開發(fā)過程中,編寫文檔是非常重要的一環(huán),文檔不僅可以幫助用戶理解和使用你的軟件,還可以提高團隊協(xié)作效率,然傳統(tǒng)的文檔寫作方式往往繁瑣而復雜,不易于維護更新,MkDocs工具以簡潔、優(yōu)雅的方式編寫文檔,并且能夠輕松生成漂亮的靜態(tài)網(wǎng)站
    2024-01-01
  • python+pywinauto+lackey實現(xiàn)PC端exe自動化的示例代碼

    python+pywinauto+lackey實現(xiàn)PC端exe自動化的示例代碼

    這篇文章主要介紹了python+pywinauto+lackey實現(xiàn)PC端exe自動化的示例代碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-04-04
  • 淺談Python數(shù)學建模之整數(shù)規(guī)劃

    淺談Python數(shù)學建模之整數(shù)規(guī)劃

    整數(shù)規(guī)劃并不一定是線性規(guī)劃問題的變量取整限制,對于二次規(guī)劃、非線性規(guī)劃問題也有變量取整限制而引出的整數(shù)規(guī)劃。但在數(shù)學建模問題中所說的整數(shù)規(guī)劃,通常是指整數(shù)線性規(guī)劃。整數(shù)規(guī)劃與線性規(guī)劃的差別只是變量的整數(shù)約束。選擇簡單通用的編程方案,讓求解器去處理吧
    2021-06-06
  • Python多線程中線程數(shù)量如何控制

    Python多線程中線程數(shù)量如何控制

    本文主要介紹了Python多線程中線程數(shù)量如何控制,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-01-01
  • Python中的Broadcast機制

    Python中的Broadcast機制

    這篇文章主要介紹了Python中的Broadcast機制,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-06-06
  • Python中的With語句的使用及原理

    Python中的With語句的使用及原理

    這篇文章主要介紹了Python中的With語句的使用及原理,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-07-07
  • 詳解tf.device()指定tensorflow運行的GPU或CPU設備實現(xiàn)

    詳解tf.device()指定tensorflow運行的GPU或CPU設備實現(xiàn)

    這篇文章主要介紹了詳解tf.device()指定tensorflow運行的GPU或CPU設備實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-02-02

最新評論

桂平市| 介休市| 安顺市| 汉沽区| 永年县| 德格县| 宁安市| 乌什县| 呼伦贝尔市| 湘潭市| 蚌埠市| 甘泉县| 成都市| 大连市| 本溪市| 虹口区| 彝良县| 阿克陶县| 襄汾县| 平顶山市| 盐源县| 崇义县| 金溪县| 承德县| 绥德县| 无棣县| 司法| 喀喇沁旗| 梁河县| 鄢陵县| 铜川市| 宾川县| 常州市| 成都市| 二手房| 师宗县| 商洛市| 扎赉特旗| 长岛县| 合作市| 乌拉特前旗|