📅  最后修改于: 2023-12-03 15:07:47.368000             🧑  作者: Mango
在 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
类的实例之间共享的属性。make
,model
和 mileage
是实例变量。它们在每个 Car
实例中都不同,因此需要在 __init__
方法中定义。 drive()
方法增加了 mileage
的值,这对于每个实例是不同的。
在使用类变量和实例变量时,请务必注意它们之间的不同。如果您不希望变量的更改在类的所有实例之间共享,则应使用实例变量。如果您想在类的所有实例之间共享变量,则应使用类变量。