【发布时间】:2017-10-24 18:31:42
【问题描述】:
我有以下代码
pop = [[2.162840682206156, 1.8735137437504137, 1.0432493688065905],
[2.8316083260339413, 1.3335260337446606, 0.7503595302921512]]
print '==>pop :: {}'.format(pop)
def serial(ind):
ssgs = ssgs.SSGS()
pheno = ssgs.s_SGS(ind)
print "serial :: {}".format(pheno.serial)
return pheno.serial,
for i in range(len(pop)):
print '==>pop1 :: {}'.format(pop[i])
value = serial(pop[i])
print '==>pop2 :: {}'.format(pop[i])
将列表 pop 传递给 serial() 后,pop 的值变为 None,
==>pop :: [[2.162840682206156, 1.8735137437504137, 1.0432493688065905], [2.8316083260339413, 1.3335260337446606, 0.7503595302921512]]
==>pop1 :: [2.162840682206156, 1.8735137437504137, 1.0432493688065905]
serial :: [0, 0, 3]
==>pop2 :: [None, None, None]
==>pop1 :: [2.8316083260339413, 1.3335260337446606, 0.7503595302921512]
serial :: [0, 0, 3]
==>pop2 :: [None, None, None]
更新:我期待的输出是这样的,即 pop 的值不应该改变
==>pop1 :: [2.8316083260339413, 1.3335260337446606, 0.7503595302921512]
serial :: [0, 0, 3]
==>pop2 :: [2.8316083260339413, 1.3335260337446606, 0.7503595302921512]
更新: ssgs 是一个作业调度类,它可以找到每个任务的开始时间。
如果我是正确的 pop 的副本被发送到 serial(),那么为什么 pop 的值被替换为 None? 为什么程序会这样?
【问题讨论】:
-
ssgs等是什么? -
尝试评论您的电话:
ssgs = ssgs.SSGS() pheno = ssgs.s_SGS(ind)。他们可能会使用全局pop变量。
标签: python