python類屬性學習深入講解

class MyClass():
  # 直接將屬性定義在類中,這種屬性稱為 類屬性
  # 類屬性可以通過實列對象和類對象訪問,但是隻能通過類對象修改
  # 類屬性都是用來保存一些公共的數據
  a = 10

  def __init__(self):
    # 可以直接將屬性添加到實列對象中,此時這個屬性稱為實例屬性
    # 實例屬性隻能被實例訪問和修改,無法被類訪問和修改
    # 一般情況下定義的都是實例屬性
    self.b = 'hello'

  # 在類中直接定義的方法,稱為實例方法
  # 實例方法,可以通過實例對象和類對象調用
  #  但是註意:通過類對象調用時,不會自動傳遞self
  def fn(self):
    print('我是fn方法')


  # 在方法前添加classmethod,則該方法自動變成類方法
  #  類方法的第一個參數默認是cls表示當前的類對象
  #  並且類方法既可以通過實例對象調用也可以通過類對象調用
  @classmethod
  def fn2(cls):
    print('我是fn2方法', cls)

  # 添加staticmethod裝飾器的方法是 靜態方法
  # 靜態方法可以通過類和實例調用,並且沒有任何默認參數
  # 靜態方法是和對象無關的方法,一般靜態方法都是一些工具方法
  #  覺得沒有地方放瞭,就放到一個類中
  @staticmethod
  def fn3():
    print('我是fn3方法')

mc = MyClass()
# mc.a = 50
MyClass.a = 30
print(mc.b)
print(MyClass.a)

MyClass.fn(mc)
MyClass.fn2()
mc.fn2()

MyClass.fn3()
mc.fn3()

在這裡插入圖片描述

到此這篇關於python_類屬性學習的文章就介紹到這瞭,更多相關python_類屬性學習內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: