0

func2のmainで定義されているvar1にアクセスするための最良の方法について、いくつかの入力が必要です。プログラムフローは次のようになります。アドバイスしてください。

func2():

 #need to access var1 in func2


func1():

   func2()

def main():

  var1
  func1()
4

2 に答える 2

2

global両方の関数のように変数をマークする必要があります。

def func2():
    global var1
    print var1

    var1 = "World"

def func1():
    func2()

def main():
    global var1
    var1 = "Hello"
    func1()

    print var1

出力:

Hello
World

質問に答えたので、これを行うためのより良い方法があります。

  • Joran Beasleyの回答が示すように、で変数を読み取るだけでよい場合はfunc2、それをパラメーターとして渡します。

  • から値を取得する必要がある場合はfunc2、値を返す方が理にかなっています。

  • いたるところに変数を読み書きする必要がある場合は、設計を再検討する必要があります。または、関数をでまとめてclass、メンバー変数にすることを検討してください。

于 2012-12-31T04:29:06.717 に答える
1

グローバルの代わりにパラメータを使用することをお勧めします...しかしどちらも機能するはずです

def func2(value=None):
 print value
 #need to access var1 in func2


def func1(var_val=None):

   func2(var_val)

def main():

  var1 = "hello";
  func1(var1)

またはクラスレベルの静的変数

class config:
   var1=None

def func2(value=None):
 print config.var1
 #need to access var1 in func2


def func1():

   func2()

def main():

  config.var1 = "hello";
  func1()
于 2012-12-31T04:30:41.347 に答える