0

私に問題を与えるさらに別の単純な問題。

次のものがあるとします。

#!/usr/bin/python 
ref = 30
def f(x):
   print x + ref
f(50)

これまでのところ、私の目的にとって便利な側面の 1 つは、(おそらく) refが関数fによってグローバル変数として扱われるため、 fの引数として指定する必要がないことです。

ただし、fを別のモジュール、たとえばmyfunctionsに格納すると問題が発生します。

#!/usr/bin/python 
import myfunctions
ref = 30
myfunctions.f(50)

myfunctionsには、上記のfの定義が含まれています。これを実行しようとすると、「グローバル名 'ref' が定義されていません」という NameError が発生します。

これは、メイン モジュールと「myfunctions」モジュールのグローバル名前空間が異なるためだと推測していますが、 fの引数としてrefを必ずしも含める必要なく、これを回避する良い方法はありますか?

4

1 に答える 1