モジュールから呼び出す関数があります。関数内で、アクセスしようとしている 2 つの変数がグローバルになります。モジュールを IDLE で単独で実行すると、期待どおり、関数の終了後も変数にアクセスできます。モジュールをインポートしたコードで関数を呼び出すと、変数にアクセスできません。
#module to be imported
def globaltest():
global name
global age
name = str(raw_input("What is your name? "))
age = int(raw_input("What is your age? "))
単独で実行したときの出力。
>>> globaltest()
What is your name? tom
What is your age? 16
>>> name
'tom'
>>> age
16
そしてそれをインポートするコード。
import name_age
name_age.globaltest()
しかし、実行すると、インポートしたコード内の変数にアクセスしようとします。
What is your name? tom
What is your age? 16
>>> name
Traceback (most recent call last):
File "<pyshell#10>", line 1, in <module>
name
NameError: name 'name' is not defined
>>>
モジュールをインポートしたコードで変数をグローバルにする方法、または関数の「名前」または「年齢」変数にアクセスするにはどうすればよいですか。