實例屬性和類屬性

實例屬性
  因爲Python是動態語言,根據類建立的實例能夠任意綁定屬性
  實例綁定屬性的方法
    1) 經過實例變量
    2) 經過self變量spa

  class Student(object):
    def __init__(self, name):
      self.name = name #經過self變量綁定屬性

  s = Student('Bob')
  s.score = 90 #經過實例變量綁定屬性

 

 

類屬性
  若是類自己須要綁定一個屬性,能夠直接在class中定義屬性,這種屬性是類屬性
  當定義了一個類屬性後,這個屬性雖然歸類全部,但類的全部實例均可以訪問到
  實例屬性和類屬性不要使用相同的名字,由於相同名稱的實例屬性將屏蔽掉類屬性,可是當刪除實例屬性後,再用相同的名稱,訪問到的將是類屬性code

  class Student(object):
    name = 'Student'

  s = Student()    #建立實例s
  print(s.name)    #輸出:Student
  print(Student.name)    #輸出:Student

  s.name = 'Michael' #給實例綁定name屬性
  print(s.name)    #輸出:Michael
  print(Student.name)    #輸出:Student

  del s.name    #刪除實例的name屬性
  print(s.name)    #輸出:Student,再次調用s.name,因爲實例的name屬性沒有找到,類的name屬性就顯示出來了

 

實例屬性和類屬性
  實例屬性屬於各個實例全部,互不干擾
  類屬性屬於類全部,全部實例共享一個屬性
  不要對實例屬性和類屬性使用相同的名字,不然將產生難以發現的錯誤blog

相關文章
相關標籤/搜索