我有这堂课:
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?
答案 0 :(得分:2)
试试这个,它有点简单。另外,如果使用Python 2.x,则使用xrange
;如果使用Python 3.x,则使用range
。
tests = [test(i == int(sys.argv[1])) for i in xrange(5)]
您的代码基本上是正确的 - 您只是忘记转换为int
命令行参数。