Я, наконец, попал в Python и заметил что-то странное, что работает на Java, но не в Python.Определение переменных модуля из функций
Когда я печатаю следующее:
fn = "" # Local filename storage.
def read(filename):
fn = filename
return open(filename, 'r').read()
Мой flake8 ЛИНТЕР для Atom дает мне следующую ошибку:
F841 - local variable 'fn' is assigned to but never used.
Я предполагаю, что это означает, что переменная определяется на def уровень, а не модуль уровень, который я намереваюсь делать. Пожалуйста, поправьте меня, если я ошибаюсь.
Я искал Google, с несколькими формулировками, но не могу показаться, чтобы слова его таким образом, что правильный результат отображения ...
Любые идеи о том, как я могу быть в состоянии достигнуть переменной уровня модуля определения из уровня функции?
'fn' присваивается, но вместо' fn' код использует 'filename'. Почему вы не используете 'fn'? 'return open (fn, 'r'). read()' – falsetru
@falsetru Я обращаюсь к файловому уровню 'fn' из другого класса. Его хранилище для последующего использования. – finnrayment
Затем вам нужно объявить его глобальным 'global fn' – falsetru