全國(guó)咨詢(xún)/投訴熱線:400-618-4000

首頁(yè)常見(jiàn)問(wèn)題正文

Python類(lèi)屬性和實(shí)例屬性的區(qū)別與用法

更新時(shí)間:2023-03-08 來(lái)源:黑馬程序員 瀏覽量:

IT培訓(xùn)班

  Python類(lèi)屬性和實(shí)例屬性是在類(lèi)中定義的屬性,它們的作用和范圍不同。

  類(lèi)屬性是屬于類(lèi)的,不屬于任何一個(gè)實(shí)例。在類(lèi)中定義的變量被稱(chēng)為類(lèi)屬性,可以通過(guò)類(lèi)名來(lái)訪問(wèn)它們,也可以通過(guò)實(shí)例名來(lái)訪問(wèn)。當(dāng)某個(gè)實(shí)例調(diào)用類(lèi)屬性時(shí),它們?cè)L問(wèn)的是類(lèi)屬性的副本,這意味著當(dāng)類(lèi)屬性的值發(fā)生改變時(shí),所有實(shí)例都會(huì)受到影響。類(lèi)屬性通常用于保存與類(lèi)相關(guān)的常量或配置信息。

  實(shí)例屬性是屬于實(shí)例的,只在特定的實(shí)例中存在。實(shí)例屬性在實(shí)例化對(duì)象時(shí)被創(chuàng)建,并且只能通過(guò)實(shí)例名來(lái)訪問(wèn)。每個(gè)實(shí)例都擁有自己的實(shí)例屬性,它們是獨(dú)立的,不會(huì)相互干擾。實(shí)例屬性通常用于保存實(shí)例的狀態(tài)或數(shù)據(jù),以及與該實(shí)例相關(guān)的信息。

  接下來(lái),我們用一個(gè)示例代碼,演示 Python 中的類(lèi)屬性和實(shí)例屬性:

class Car:
    # 類(lèi)屬性
    wheels = 4

    def __init__(self, make, model, year):
        # 實(shí)例屬性
        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)建兩個(gè)實(shí)例對(duì)象
car1 = Car("Toyota", "Corolla", 2022)
car2 = Car("Honda", "Civic", 2021)

# 獲取實(shí)例屬性值
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

# 獲取類(lèi)屬性值
print("Car wheels: ", Car.wheels)  # 輸出:Car wheels: 4
print("Car 1 wheels: ", car1.get_wheels())  # 輸出:Car 1 wheels: 4

# 修改實(shí)例屬性值
car1.make = "Ford"
print("Car 1 make: ", car1.get_make())  # 輸出:Car 1 make: Ford

# 修改類(lèi)屬性值
Car.wheels = 6
print("Car 1 wheels: ", car1.get_wheels())  # 輸出:Car 1 wheels: 6

  在上面的示例代碼中,我們定義了一個(gè)"Car"類(lèi),包含一個(gè)類(lèi)屬性"wheels"和三個(gè)實(shí)例屬性"make"、"model"和 "year"。我們創(chuàng)建了兩個(gè)"Car類(lèi)"的實(shí)例對(duì)象"car1"和"car2",并使用實(shí)例方法獲取它們的實(shí)例屬性值。我們還使用了類(lèi)方法獲取了類(lèi)屬性"wheels"的值。

  接下來(lái),我們修改了實(shí)例屬性"make"的值,并將類(lèi)屬性"wheels"的值從4修改為6,最后使用實(shí)例方法獲取了 "car1"實(shí)例對(duì)象的類(lèi)屬性"wheels"的值。

分享到:
在線咨詢(xún) 我要報(bào)名
和我們?cè)诰€交談!