无法在OOP(Python)中使用setter和getter更改值

问题描述 投票:0回答:1

即使使用setter和getter将速度更新为新值后,我也无法更改福特Car的速度(我不想使用赋值运算符)。这是我的代码:

class Car:
    def __init__(self,speed,color):
        self.speed = speed
        self.color = color
    def set_speed(self,value):
        self.value=value
    def get_speed(self):
        return self.speed
ford = Car(100,'black')
audi = Car(200,'red')
bmw  = Car(250,'white')
ford.set_speed(400)
print(ford.get_speed())
print(ford.color)

为什么即使设置了福特,我也无法获得400的福特速度?我得到的输出为-

100黑色

python-3.x oop getter-setter
1个回答
0
投票

您正在更改设置器中的属性value,而不是速度属性,即在getter中返回的属性。只需将设置器中的代码更改为:self.speed = value

© www.soinside.com 2019 - 2024. All rights reserved.