0

我该怎么做呢?

class car:
    def __init__(self, tires, color, age):
        self.tires = tires
        self.color = color
        self.age = age
    def gTires(self):
        return self.tires
    def gColor(self):
        return self.color
    def gAge(self):
        return self.age

car1 = car(3, "Red", "1996")
carTires = car1.gTires
carColor = car1.gColor
carAge = car1.gAge

print("Your car 'car1' is done. It has " + carTires + " tires, is " + carColor + " and was made year " + carAge)
print()
print("But I heard you wanted it to have four tires?")
print("No problem (right?).")

car1 = car((car1.gTires + 1), (car1.gColor), (car1.gAge))

所以我的问题是关于如何使用属性,我是否必须像一开始那样设置所有变量?我的意思是,我不希望它们成为实例方法,但如果我不设置它们,它们似乎会是。另外,在最后一行我想更改 car1 拥有的轮胎数量的值,我不想更改所有其他属性。有没有办法在不设置所有其他属性的情况下做到这一点?

抱歉,如果这没有意义,请问您是否觉得难以理解我的问题。

4

1 回答 1

1

您不需要在创建实例属性时设置它;您可以随时或多或少地设置它,只需说self.foo = bar. 您可以在类实例的函数中,或在不同的函数中,或在主代码中执行此操作。您甚至不需要在分配之前声明它;如果在某个时候你决定汽车有一个doors属性,那么你可以毫不费力地给任何汽车实例一个。对象以这种方式非常灵活。您只需说出 即可更改轮胎的数量car1.tires = 453

没有任何private/public事情或任何其他麻烦会妨碍您更改属性。您不需要像 Java 这样的语言那样需要 getter 和 setter,因为它们无论如何都不会保护您的变量。您可以从任何地方直接访问它们(这让我的 Java 程序员有点娇气,但这就是 Python 的工作方式)。

另一方面,要使用类函数,您需要说car1.gTires()而不是car1.gTires.

于 2014-07-22T13:50:31.797 回答