func2のmainで定義されているvar1にアクセスするための最良の方法について、いくつかの入力が必要です。プログラムフローは次のようになります。アドバイスしてください。
func2():
#need to access var1 in func2
func1():
func2()
def main():
var1
func1()
func2のmainで定義されているvar1にアクセスするための最良の方法について、いくつかの入力が必要です。プログラムフローは次のようになります。アドバイスしてください。
func2():
#need to access var1 in func2
func1():
func2()
def main():
var1
func1()
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
、メンバー変数にすることを検討してください。
グローバルの代わりにパラメータを使用することをお勧めします...しかしどちらも機能するはずです
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()