Я хотел бы использовать функцию таким же именем из разных пакетов в зависимости от функции флага:условное соотнесение пакетов Python: UnboundLocalError
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
Как угодить ему и делать условные ссылки на пакеты?
Я вижу, что этот вопрос относится к другим вопросам на переменных областях, но здесь речь идет о том, как обрабатывать различную область применения. И ответ, который я получил, ценен для этого конкретного вопроса.
Я не понимаю, что должно делать 'F = np', но эта проблема является проблемой. Если у вас есть переменная только для чтения в функции (она просто использует значение из более высокой области), вы можете это сделать. Однако _reassigning_ он в теле функции делает его локальным, и поскольку он вызывается независимо, но только определен (локально) в ветке 'if', вы получаете эту ошибку. –