3

我有这堂课:

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 吗?

4

1 回答 1

2

试试这个,它更简单一些。此外,xrange如果使用 Python 2.x 或range使用 Python 3.x ,请使用。

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

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

于 2013-09-02T22:57:14.983 回答