1

次のようなモジュールがあります。

module1.py

Class bla():
  code here

def main():

  g1=bla()

if __name__ == '__main__':
  main()

ipython module1.pyIPythonを実行または実行するとimport module1、コードが期待どおりに実行されます。ただし、メインプログラムで定義したにもかかわらず、定義されていないprint g1と言うようなものを入力すると。コードがメインプログラムを実行してから、何らかの形で「終了」し、ipythonプロンプトが表示されたままになっているようです。メイン関数で定義した変数を使用したい...g1g1

どうすればいいですか?

4

1 に答える 1

3

g1グローバルとしてマークする必要があります:

def main():
    global g1
    g1 = bla()

通常、関数で定義された名前は、その関数に対してのみローカルです。モジュールから名前をインポートするか、モジュールの属性として参照する必要があります。

import module1

print module1.g1
于 2013-03-01T21:30:41.873 に答える