我目前正在CodeAcademy的帮助下学习Python。我的问题可能与他们的网络应用程序有关,但我怀疑我在这里是一个非常基本的错误。
如果您想跟随,我指的是CodeAcademy.com - > Python - > 6/11课程
我的代码如下所示:
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)
print my_car.model
print my_car.color
print my_car.mpg
print my_car.condition
假设发生的是,对象my_car
的每个成员变量都会在屏幕上打印出来。我原以为condition
,color
和model
会被视为字符串,而是被视为Tuple
。
输出如下:
('DeLorean',) #Tuple
('silver',) #Tuple
88
new #String
None
这导致验证失败,因为CA期望"白银"但代码返回('silver',)
。
我的代码中的错误在哪里?
答案 0 :(得分:59)
在__init__
,您有:
self.model = model,
self.color = color,
这是你如何定义一个元组。将行更改为
self.model = model
self.color = color
没有逗号:
>>> a = 2,
>>> a
(2,)
VS
>>> a = 2
>>> a
2
答案 1 :(得分:10)
你的构造函数中的那些属性后面有一个逗号。
删除它们,你就可以在没有元组的情况下获得它
答案 2 :(得分:4)
是的,您必须从实例变量中删除逗号。 from self.model = model, to self.model = model
很高兴看到,您正在使用类变量概念,
" condition
"是类变量" self.model
"," self.color
"," self.mpg
"是实例变量。