【发布时间】:2013-05-11 22:33:22
【问题描述】:
我有一个 python 函数测试来测试我的代码。 '得到的字符串和预期的字符串是一样的,但是当我通过下面的方法检查它时,它给出的是X而不是OK
编辑:也包括父函数和调用
def donuts(count):
if count <=10 :
print 'Number of donuts:',count
else :
print 'Number of donuts: many'
return
def test(got, expected):
if got == expected:
prefix = ' OK '
else:
prefix = ' X '
print '%s got: %s expected: %s' % (prefix, repr(got), repr(expected))
return
在我看来,得到和预期的地方都一样,我错过了什么吗? 删除了 O/p,因为它具有误导性: 函数声明如下:
test(donuts("11"), "Number of donuts: many")
【问题讨论】:
-
使用
print repr(got), repr(expected)看看可能有什么不同。显然,它们不相同。 -
另外,
return语句实际上什么也没做。 -
也试试 type(got) 和 type(expected)。
-
这不可能是您的代码的输出。一个有
:,一个有=,repr()输出应该有某种引号。 -
鉴于您似乎已经在使用
repr()调用,并且假设got和expected是字符串,因此您的示例输出似乎确实很可能。除非您有带有自定义__repr__方法的自定义类型,否则您的输出会缺少引号,并且应该有 not 换行符。这甚至没有提到您的代码打印got:,但您的示例输出有got =。
标签: python string python-2.7