类函数未返回正确的值

时间:2013-09-02 22:51:21

标签: python

我有这堂课:

class test(object):
    def __init__(self, s):
        self.s = s
    def getS(self):
        return self.s

我需要生成此类的5个实例,并且只有1个实例将具有值等于true的变量s。

tests = [test(True) if i==sys.argv[1] else test(False) for i in range(5)]

然后我尝试打印这些值。

for i in tests:
    print i.getS()

输出是:

False
False
False
False
False

其中一个值是否应该等于True?

1 个答案:

答案 0 :(得分:2)

试试这个,它有点简单。另外,如果使用Python 2.x,则使用xrange;如果使用Python 3.x,则使用range

tests = [test(i == int(sys.argv[1])) for i in xrange(5)]

您的代码基本上是正确的 - 您只是忘记转换为int命令行参数。