463
什麼是屬性(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)之後的即稱為屬性,並且屬性可以是唯獨或者可寫的。
但它是可寫時,我們便能賦值,這樣看起來便像一個變數,但因為他能表示出一個完整的從屬關係,所以以變數來形容他變得不太合適。
