将具有相同值的参数传递给多次调用的函数的有效代码编写方法是什么? (蟒蛇)

时间:2019-03-22 01:04:23

标签: python parameters boto3

def filtered_imagesIds(imageParam,serverId)
   ###code to get subset of data provided using serverId

def oldest_image(filteredImageParam)
   ### code to find oldest image  
mainfunc()
  completeImageSet = (### code to get whole set of ImageIds)
  for server in serverList:
      filteredImageSet = fitered_ImageIds(completeImageSet,server)
      oldestImage = oldest_image(filteredImageSet)
      oldImageList.append(oldestImage)
  print oldImageList

这是我代码的大致框架。如您所见,我正在尝试从从整个图像集中获得的过滤图像集中获取服务器的最旧图像。

我是python的新手,我不确定将具有相同值(completeImageSet)的参数传递给将多次调用的函数(filtered_ImageIds)的效率如何。

每次调用该函数都会创建一个对象吗?如果是这样,拥有全局变量会更有效吗?

1 个答案:

答案 0 :(得分:1)

正如亚当·斯密(Adam Smith)所述,参数是通过对象分配传递的,因此,在循环中迭代时,completeImageSet的值不应更改。

您还可以使用列表理解来简化事情;

oldImageList = [oldest_image(filtered_ImageIds(completeImageSet, server)) for server in serverList]