ドキュメントを読んで理解したのは、Pythonには関数用の個別の名前空間があり、その関数でグローバル変数を使用する場合はを使用する必要があるということglobal
です。
私はPython 2.7を使用していますが、この小さなテストを試しました
>>> sub = ['0', '0', '0', '0']
>>> def getJoin():
... return '.'.join(sub)
...
>>> getJoin()
'0.0.0.0'
なしでも問題なく動作しているようglobal
です。問題なくグローバル変数にアクセスできました。
何か不足していますか?また、以下はPythonのドキュメントからの抜粋です。
グローバルステートメントにリストされた名前は、仮パラメーターとして、またはforループ制御ターゲット、クラス定義、関数定義、またはインポートステートメントで定義してはなりません。
仮パラメーターとクラス定義は私には意味がありますが、forループの制御ターゲットと関数定義の制限を理解できません。