我该怎么做?
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所具有的轮胎数量的值,我不想改变所有其他属性。如果不设置所有其他属性,有没有办法做到这一点?
对不起,如果这没有用,请问我是否觉得你很难理解我的问题。
答案 0 :(得分:1)
您不需要在创建实例属性时设置它;你可以随时或多或少地设置它,只需说self.foo = bar
即可。您可以在类实例的功能中,或在不同的功能中,或仅在主代码中执行此操作。在分配之前,您甚至不需要声明它;如果在某些时候你决定汽车有doors
属性,那么你可以毫不费力地给任何汽车实例一个。对象非常灵活。您只需说出car1.tires = 453
即可更改轮胎数量。
没有private/public
的事情或任何其他麻烦,只会更改属性妨碍你。你不需要像Java那样需要getter和setter,因为他们无论如何都不会保护你的变量。你可以从任何地方直接访问它们(这让我的Java程序员有点娇气,但这就是Python的工作方式)。
另一方面,要使用类功能,您需要说car1.gTires()
而不是car1.gTires
。