4

私は modules.py ファイルを持っています:

global dns_server_ip
def SetVnetGlobalParameters():
    dns_server_ip = '192.168.3.120'

そして、このファイルをabc.pyファイルにインポートしています

from modules import *
SetVnetGlobalParameters()
print(dns_server_ip)

しかし、「dns_server_ip」にはまだアクセスできません。

関数のみでグローバル パラメータを設定したい。どんな助けでも大歓迎です!ありがとう..

4

2 に答える 2

10

あなたの質問によると、私はあなたがPythonの初心者であることを理解しています.

モジュールをインポートするときに、モジュール名だけを使用し、拡張子や接尾辞 (py) を含める必要はありません。コードでは、開始の一重引用符がありません。

変更したコードは次のとおりです。modules.py です。

dns_server_ip = ''
def SetVnetGlobalParameters():
    global dns_server_ip
    dns_server_ip = '192.168.3.120′

ここにあなたのabc.pyがあります

import modules 
modules.SetVnetGlobalParameters()
print modules.dns_server_ip

ここで global キーワードを介して、Python インタープリターにローカル変数の代わりにグローバル変数を変更または指摘するように指示しています。変数は常に次のいずれglobalかになりlocal ます。変数が両方 (ローカルとグローバル) の場合、Python UnboundLocalError 例外が発生します。そのグローバルキーワードを入れないでください

global dns_server_ip

dns_server_ip が新しいローカル変数として作成されます。global関数のみで使用することを意図したキーワード

グローバルキーワードpythonモジュールを確認できます

于 2013-04-18T06:32:23.210 に答える
3

modules.py で

dns_server_ip = None
def SetVnetGlobalParameters():
    global dns_server_ip
    dns_server_ip = '192.168.3.120'

abc.py で

import modules
modules.SetVnetGlobalParameters()
print(modules.dns_server_ip)
于 2013-04-18T06:02:52.873 に答える