如何避免在本节中重复代码?

时间:2019-08-25 11:21:55

标签: python

ds_trn, ds_val = SetDataset(trn, batch_size, 'train'), SetDataset(val, batch_size, 'val')

如何避免出现SetDataset的两次出现,而只使它出现一次?

2 个答案:

答案 0 :(得分:1)

您可以执行此操作,但是在我看来,它的可读性较差:

ds_trn, ds_val = (SetDataset(thing, batch_size, name) for thing, name in [(trn, 'train'), (val, 'val')])

对于两个变量来说,这似乎有些矫kill过正,但是如果您需要一个相对较大的SetDataset对象列表,它确实会发光。

答案 1 :(得分:1)

仅当要初始化的对象多于两个时,这才有用:

ds_trn, ds_val = map(lambda p : SetDataset(*p), [(trn, batch_size, 'train'), (val, batch_size, 'val')])