91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

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

临沧市| 伽师县| 阿拉尔市| 桓仁| 东城区| 乐亭县| 石景山区| 井冈山市| 定远县| 宣化县| 满洲里市| 志丹县| 夏河县| 百色市| 聊城市| 嫩江县| 广南县| 沙湾县| 增城市| 天柱县| 石门县| 澎湖县| 三门县| 滁州市| 太康县| 澜沧| 合水县| 油尖旺区| 金平| 梨树县| 宣武区| 高台县| 甘孜县| 清镇市| 千阳县| 丘北县| 鄱阳县| 密山市| 江油市| 淅川县| 古浪县|