0

これを解決するには他に何百万もの方法があることを認識しているので、代替ソリューションにはあまり興味がありませんが、これがうまくいかない理由はもっとあります。

class Car(object):

    condition = 'new'

    def __init__(self, model, color, mpg):
        self.model = model
        self.color = color
        self.mpg = mpg

my_car = Car('DeLorean', 'silver', 88)
for x in [condition, model, color, mpg]:
    print my_car.x

my_car.condition、my_car.model、my_car.color、および my_car.mpg を印刷しようとしています。

4

3 に答える 3

2

現在のコードは、存在しないのx属性を探しているだけです。Carで動的属性検索を行う必要がありますgetattr。ただし、最初に、属性のリストに適切な名前を文字列として含める必要があります。つまり、次のようになります。

for x in ['condition', 'model', 'color', 'mpg']:
    print(getattr(my_car, x))
于 2013-05-08T12:01:50.823 に答える
0

すべての車をこの順序で印刷したい場合は、次のようにします。

class Car(object):

    condition = 'new'

    def __init__(self, model, color, mpg):
        self.model = model
        self.color = color
        self.mpg = mpg

    def __str__(self):
        return "{} {} {} {}".format(self.condition, self.model, self.color, self.mpg)

my_car = Car('DeLorean', 'silver', 88)
print my_car
于 2013-05-08T12:25:45.300 に答える
0

状態、モデル、色、mpg、my_car.x が定義されていないため、機能しません。

于 2013-05-08T13:14:24.553 に答える