📜  在 Python 类的多个实例中使用变量 (1)

📅  最后修改于: 2023-12-03 15:07:47.368000             🧑  作者: Mango

在 Python 类的多个实例中使用变量

在 Python 类的多个实例中,您可以使用类变量或实例变量两种类型的变量。类变量是指可在该类的所有实例之间共享的变量,它们通常在类定义之外定义。实例变量则属于该类的每个实例或对象。

在使用类变量时应注意,如果您更改类变量,则在所有实例中都会更改该类变量的值。相反,如果您更改实例变量,则仅在该特定实例中更改该变量的值。

下面是一个使用类变量和实例变量的示例:

class Car:
    engine_type = "Gasoline"
    
    def __init__(self, make, model):
        self.make = make
        self.model = model
        self.mileage = 0
        
    def drive(self, miles):
        self.mileage += miles
        
car1 = Car("Toyota", "Corolla")
print("Car engine type:", car1.engine_type)
print("Car make:", car1.make)
print("Car model:", car1.model)
print("Car mileage:", car1.mileage)

car2 = Car("Honda", "Civic")
print("Car engine type:", car2.engine_type)
print("Car make:", car2.make)
print("Car model:", car2.model)
print("Car mileage:", car2.mileage)

car1.drive(100)
car2.drive(200)

print("Car 1 mileage after drive:", car1.mileage)
print("Car 2 mileage after drive:", car2.mileage)

该代码输出如下:

Car engine type: Gasoline
Car make: Toyota
Car model: Corolla
Car mileage: 0
Car engine type: Gasoline
Car make: Honda
Car model: Civic
Car mileage: 0
Car 1 mileage after drive: 100
Car 2 mileage after drive: 200

在上面的代码中,engine_type 是类变量,并在类定义之内定义。它是所有 Car 类的实例之间共享的属性。makemodelmileage 是实例变量。它们在每个 Car 实例中都不同,因此需要在 __init__ 方法中定义。 drive() 方法增加了 mileage 的值,这对于每个实例是不同的。

在使用类变量和实例变量时,请务必注意它们之间的不同。如果您不希望变量的更改在类的所有实例之间共享,则应使用实例变量。如果您想在类的所有实例之间共享变量,则应使用类变量。