面向物件(三)-例項屬性與類屬性
阿新 • • 發佈:2020-12-29
例項屬性和類屬性
1 概念
- 例項屬性:每個物件具有的屬性,且每個屬性的值一般不同,比如每個人的姓名
- 類屬性:每個物件具有的屬性,但是每個屬性的值相同,比如人類的最大壽命,班級內學生的性別
2 區別
(1)概念上
- 例項屬性值是每個物件各自獨立的,在記憶體中也會出現多份
- 類屬性一般所有物件都共有的,在記憶體中只保留一份
(2)宣告位置
- 例項屬性:在__init__()方法中
- 類屬性:直接在類中定義
(3)訪問方式
- 例項屬性:只有例項物件能夠訪問
- 類屬性:例項物件和類物件都可以訪問
(4)修改形式
- 例項屬性:例項物件.例項屬性 = 值
- 類屬性:類物件.類屬性 = 值,例項物件不能修改類屬性
注意:如果例項物件具有和類物件同名的例項屬性,優先使用例項屬性。
# 定義學生類,屬性:name,age,gender class Student: gender = "男" # 類屬性:公共資源 def __init__(self, name, age): self.name = name self.age = age # self.gender = gender # zs,ls是否為同一個地址?不同 zs = Student('zs', 20) ls = Student('ls', 20) print(Student.gender) # 類物件可以訪問類屬性 print(Student.name) # 類物件可以訪問例項屬性?不能 # 修改屬性 zs.gender = "女" # 增加一個gender例項屬性 Student.gender = "女" # 修改類屬性