2017-08-22 7 views
0

に定義されていない私は、Pythonでのコードの下に書く。(バージョン3.6.2):NameError: 'C' が

def test(): 
    temp = 'c=1' 
    exec(temp) 
    print(c) 

test() 

それを実行したとき、私はエラーの下に出る:

NameError: name 'c' is not defined 

が、実行コードの下:

temp='a=1' 
exec(temp) 
print(a) 

それが印刷1.

H私はこれを修正するのですか?

+0

cという変数はありませんが、print(c)はエラーを出力します。 –

+2

python2.7またはpython3でエラーを再現できません。毎回 '1 'を表示します。 – gobrewers14

+0

私も再作成できません... – alfasin

答えて

0

exec()関数の後には、文字列またはオブジェクトだけを続けることができます。あなたが求めたことはそれらの一つではありません。

+0

? OPは文字列を渡しますが、問題はそれではなく、 'exec'は' locals'を変更しません –