Python包的条件引用:UnboundLocalError

时间:2015-11-20 20:14:21

标签: python

我想使用依赖于函数标志的不同包中的相同名称的函数:

import chainer.functions as F
def random_q_z(input, test = False):
    if test:
        F = np
        # ...
    else:
        # ...
        pass

    return F.sum(input)
然而,翻译抗议:

UnboundLocalError: local variable 'F' referenced before assignment

如何取悦它并对包进行条件引用?

我看到这个问题与变量范围的其他问题有关,但问题是关于如何处理不同的范围。我得到的答案对于这个特定的问题很有价值。

1 个答案:

答案 0 :(得分:2)

F设为默认参数:

import chainer.functions as F

def random_q_z(input, test=False, F=F):
    if test:
        F = np

    return F.sum(input)

如果在调用F时未提供random_q_z作为参数,则使用chainer.functions。您还可以为random_q_z提供F不同的功能。