更新時間:2023-03-08 來源:黑馬程序員 瀏覽量:

Python類屬性和實例屬性是在類中定義的屬性,它們的作用和范圍不同。
類屬性是屬于類的,不屬于任何一個實例。在類中定義的變量被稱為類屬性,可以通過類名來訪問它們,也可以通過實例名來訪問。當某個實例調(diào)用類屬性時,它們訪問的是類屬性的副本,這意味著當類屬性的值發(fā)生改變時,所有實例都會受到影響。類屬性通常用于保存與類相關(guān)的常量或配置信息。
實例屬性是屬于實例的,只在特定的實例中存在。實例屬性在實例化對象時被創(chuàng)建,并且只能通過實例名來訪問。每個實例都擁有自己的實例屬性,它們是獨立的,不會相互干擾。實例屬性通常用于保存實例的狀態(tài)或數(shù)據(jù),以及與該實例相關(guān)的信息。
接下來,我們用一個示例代碼,演示 Python 中的類屬性和實例屬性:
class Car:
# 類屬性
wheels = 4
def __init__(self, make, model, year):
# 實例屬性
self.make = make
self.model = model
self.year = year
def get_make(self):
return self.make
def get_model(self):
return self.model
def get_year(self):
return self.year
def get_wheels(self):
return Car.wheels
# 創(chuàng)建兩個實例對象
car1 = Car("Toyota", "Corolla", 2022)
car2 = Car("Honda", "Civic", 2021)
# 獲取實例屬性值
print("Car 1 make: ", car1.get_make()) # 輸出:Car 1 make: Toyota
print("Car 2 model: ", car2.get_model()) # 輸出:Car 2 model: Civic
print("Car 1 year: ", car1.get_year()) # 輸出:Car 1 year: 2022
# 獲取類屬性值
print("Car wheels: ", Car.wheels) # 輸出:Car wheels: 4
print("Car 1 wheels: ", car1.get_wheels()) # 輸出:Car 1 wheels: 4
# 修改實例屬性值
car1.make = "Ford"
print("Car 1 make: ", car1.get_make()) # 輸出:Car 1 make: Ford
# 修改類屬性值
Car.wheels = 6
print("Car 1 wheels: ", car1.get_wheels()) # 輸出:Car 1 wheels: 6在上面的示例代碼中,我們定義了一個"Car"類,包含一個類屬性"wheels"和三個實例屬性"make"、"model"和 "year"。我們創(chuàng)建了兩個"Car類"的實例對象"car1"和"car2",并使用實例方法獲取它們的實例屬性值。我們還使用了類方法獲取了類屬性"wheels"的值。
接下來,我們修改了實例屬性"make"的值,并將類屬性"wheels"的值從4修改為6,最后使用實例方法獲取了 "car1"實例對象的類屬性"wheels"的值。