Переменные не отображаются, когда exec () используется в функции - PullRequest
0 голосов
/ 30 мая 2019

Итак, я делаю программу, и я сделал модуль, чтобы пойти вместе с ней.В модуле у меня есть функция, где я использую exec () для создания глобальной переменной:

def FunctionName(headings):
    for c in headings:
        exec('global %s' % c)
<Other code...>

И у меня есть другой скрипт:

import modulename
headings = ['test1','test2','test3']
modulename.FunctionName(headings)
print(dir(modulename))
print(modulename.test1)

Но это возвращает

['FunctionName',<Other function but no variables>]
Traceback (most recent call last):
File "<path>\main_program.py", line 6, 
in <module>
print(modulename.test1)
AttributeError: module 'modulename' has no attribute 'nice'

Если я вручную скажу

global <Var name>

в модуле, он работает нормально.Есть идеи почему и как исправить?

...