我意识到还有其他一百种方法可以解决这个问题,因此我对替代解决方案并不是那么感兴趣,而是为什么这不起作用。
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。
答案 0 :(得分:2)
您当前的代码只是查找x
上的Car
属性,该属性不存在。您需要使用getattr
进行动态属性查找。不过,首先,您的属性列表应包含相应的名称作为字符串,因此:
for x in ['condition', 'model', 'color', 'mpg']:
print(getattr(my_car, x))
答案 1 :(得分: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
答案 2 :(得分:0)
它不起作用,因为没有定义条件,模型,颜色,mpg和my_car.x。