類別屬性、實例屬性與類別變數、實例變數

by yenchialu

什麼是屬性(attribute)?

先從屬性(attribute)一詞描述,什麼是屬性,在python裡基本上在 . 之後的都是屬性。

所以取得某物件的屬性也可說是「從一個物件中取得附屬於該物件的另一個物件」,從屬性上也可以看出彼此的從屬關係。

以此理解,我們建立簡單的class。

#範例 1
class Smartphone :
	main_purpose = "call up" #此為類別屬性
	def __init__(self,year,price,brand) :
		self.year = year #實例屬性
		self.price = price #實例屬性
		self.brand = brand #實例屬性
  • 類別屬性(class attribute) : 此屬性是跟隨類別的,一旦類別屬性變動,所以做好的物件都會被套上此類別屬性。
  • 實例屬性/資料屬性(instance attribute) : 此屬性跟隨物件,每個物件都有自己的實例屬性,及變更物件A的實例屬性,也不會影響到物件B。

變量等於屬性嗎?

許多文章中,會將上訴兩個名詞用不同的名字說明。

  • 類別屬性(class attribute) class variable、類別變數、類變數、類變量
  • 實例屬性/資料屬性(instance attribute) : instance variable、實例變數、實例變量

將變數與屬性就使用與理解上混為一談無傷大雅,但其實就技術層面與思維層面上不太一樣。

就python的文本裡即提到,在符號 . (dot)之後的即稱為屬性,並且屬性可以是唯獨或者可寫的。

但它是可寫時,我們便能賦值,這樣看起來便像一個變數,但因為他能表示出一個完整的從屬關係,所以以變數來形容他變得不太合適。

You may also like

Leave a Comment