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 に答える