我需要一些关于访问func2中main中定义的var1的最佳方法的输入,程序流程如下所示。请指教
func2():
#need to access var1 in func2
func1():
func2()
def main():
var1
func1()
答案 0 :(得分:2)
您需要在两个函数中将变量标记为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's answer所示。
如果您需要从func2
获取值,则返回值更有意义。
如果您必须在整个地方读/写变量,您应该重新考虑您的设计。或者,考虑将函数包装在class
中,并使其成为成员变量。
答案 1 :(得分: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()