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

随着问题的回答,有更好的方法来解决这个问题。

  • 如果您只需要读取中的变量func2,则将其作为参数传递,如Joran Beasley 的回答所示。

  • 如果您需要从 中取回值func2,则返回值更有意义。

  • 如果您必须在各处读取/写入变量,则应重新考虑您的设计。或者,考虑将函数包装在 a 中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 回答