我需要一些关于访问 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
随着问题的回答,有更好的方法来解决这个问题。
如果您只需要读取中的变量func2
,则将其作为参数传递,如Joran Beasley 的回答所示。
如果您需要从 中取回值func2
,则返回值更有意义。
如果您必须在各处读取/写入变量,则应重新考虑您的设计。或者,考虑将函数包装在 a 中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()