亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python 靜態方法和類方法實例分析

發布時間:2020-10-02 22:17:39 來源:腳本之家 閱讀:161 作者:小飛俠v科比 欄目:開發技術

本文實例講述了Python 靜態方法和類方法。分享給大家供大家參考,具體如下:

1. 類屬性、實例屬性

它們在定義和使用中有所區別,而最本質的區別是內存中保存的位置不同,

實例屬性屬于對象

類屬性屬于類

class Province(object):
  # 類屬性
  country = '中國'
  def __init__(self, name):
    # 實例屬性
    self.name = name
# 創建一個實例對象
obj = Province('山東省')
# 直接訪問實例屬性
print(obj.name)
# 直接訪問類屬性
Province.country

由上述代碼可以看出【實例屬性需要通過對象來訪問】【類屬性通過類訪問】,在使用上可以看出實例屬性和類屬性的歸屬是不同的。

其在內容的存儲方式類似如下圖:

Python 靜態方法和類方法實例分析

由上圖看出:

類屬性在內存中只保存一份

實例屬性在每個對象中都要保存一份

應用場景:

通過類創建實例對象時,如果每個對象需要具有相同名字的屬性,那么就使用類屬性,用一份既可

2. 實例方法、靜態方法和類方法

方法包括:實例方法、靜態方法和類方法,三種方法在內存中都歸屬于類,區別在于調用方式不同。

實例方法:由對象調用;至少一個self參數;執行實例方法時,自動將調用該方法的對象賦值給self;

類方法:由類調用; 至少一個cls參數;執行類方法時,自動將調用該方法的類賦值給cls;

靜態方法:由類調用;無默認參數;

class Foo(object):
  def __init__(self, name):
    self.name = name
  def ord_func(self):
    """ 定義實例方法,至少有一個self參數 """
    # print(self.name)
    print('實例方法')
  @classmethod
  def class_func(cls):
    """ 定義類方法,至少有一個cls參數 """
    print('類方法')
  @staticmethod
  def static_func():
    """ 定義靜態方法 ,無默認參數"""
    print('靜態方法')
f = Foo("中國")
# 調用實例方法
f.ord_func()
# 調用類方法
Foo.class_func()
# 調用靜態方法
Foo.static_func()

Python 靜態方法和類方法實例分析

對比

相同點:對于所有的方法而言,均屬于類,所以 在內存中也只保存一份

不同點:方法調用者不同、調用方法時自動傳入的參數不同。

更多關于Python相關內容感興趣的讀者可查看本站專題:《Python面向對象程序設計入門與進階教程》、《Python數據結構與算法教程》、《Python函數使用技巧總結》、《Python字符串操作技巧匯總》、《Python編碼操作技巧總結》及《Python入門與進階經典教程》

希望本文所述對大家Python程序設計有所幫助。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

临泉县| 沁水县| 定南县| 台中市| 龙游县| 浦江县| 元朗区| 阿拉尔市| 萨迦县| 青海省| 水城县| 鲁山县| 武陟县| 兰溪市| 治多县| 建平县| 佛冈县| 高雄市| 龙海市| 黔江区| 大埔区| 稷山县| 泰安市| 英德市| 万山特区| 浦江县| 东阳市| 开江县| 晋宁县| 田阳县| 大方县| 九龙坡区| 云阳县| 高要市| 康保县| 绥阳县| 大田县| 河曲县| 独山县| 高碑店市| 开江县|