修改传递给生成器函数

时间:2017-09-14 15:59:04

标签: python parameter-passing generator pass-by-reference

我正在使用生成器功能从相机拍摄一些照片。该函数接受quality参数,如果我检测到图像的大小低于或大于某个值(为了简化),我想要改变它。但是当我第一次调用生成器时,这个参数被绑定了,之后我没有看到改变它的方法。

示例代码:

q = 30
for image in get_images('image_{$i}', quality=q):
    do_something_with(image)
    if len(image) < 1e6:
        q += 2
    elif len(image) > 1e7:
        q -= 2

我想更改q变量,因此下次执行生成器函数以返回新图像时,它会使用新值,而不是当前使用的值(第一个)调用。

get_images函数位于库中,因此我无法对其进行修改以允许从外部更改quality参数。它的标题是这样的:

def get_images(output, format=None, resize=None, **options):
    ...

鉴于该标题,我理解quality变量位于options对象内。我不知道这对我正在做的事情是好还是坏。

有没有办法修改该函数中的变量,例如,通过将值的引用而不是实际值传递给函数?

为了澄清,来自get_images的{​​{1}}是camera.capture_continuous函数。

0 个答案:

没有答案