成员变量字符串在Python中被视为元组

Mar*_*rco 48 python class

我目前正在CodeAcademy的帮助下学习Python.我的问题可能与他们的网络应用程序有关,但我怀疑我在这里是一个非常基本的错误.

如果你想跟随,我指的是CodeAcademy.com - > Python - > Classes 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
Run Code Online (Sandbox Code Playgroud)

假设发生的是,对象的每个成员变量都my_car被打印在屏幕上.我期待像condition,color并且model将被视为一个字符串,而是得到视为一个Tuple.

输出如下所示:

('DeLorean',) #Tuple
('silver',) #Tuple
88 
new #String
None
Run Code Online (Sandbox Code Playgroud)

这导致验证失败,因为CA期望"银"但代码返回('silver',).

我的代码中的错误在哪里?

fre*_*ini 75

在你的__init__,你有:

    self.model = model,
    self.color = color,
Run Code Online (Sandbox Code Playgroud)

这是你如何定义一个元组.将行更改为

    self.model = model
    self.color = color
Run Code Online (Sandbox Code Playgroud)

没有逗号:

>>> a = 2,
>>> a
(2,)
Run Code Online (Sandbox Code Playgroud)

VS

>>> a = 2
>>> a
2
Run Code Online (Sandbox Code Playgroud)

  • 我已经是第二次遇到这种事了,我怎么这么笨呢? (5认同)
  • 就是这样-只是在C#和Python之间的某个翻译中迷失了方向。干杯。蜂锁解除后,接受将立即进行。 (2认同)
  • 很简单。但我却因此迷失了 (2认同)

tho*_*mas 12

你的构造函数中的那些属性后面有一个逗号.

删除它们,你将得到它没有元组


Viv*_*ble 5

是的,您必须从实例变量中删除逗号。 from self.model = model, to self.model = model

很高兴看到您正在使用类变量概念,“ condition”是类变量,“ self.model”,“ self.color”,“ self.mpg”是实例变量。