我想使用依赖于函数标志的不同包中的相同名称的函数:
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
如何取悦它并对包进行条件引用?
我看到这个问题与变量范围的其他问题有关,但问题是关于如何处理不同的范围。我得到的答案对于这个特定的问题很有价值。
答案 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
不同的功能。