学习Python:在另一个函数的函数内打印变量

时间:2011-03-10 15:59:59

标签: python

我想在python中执行以下操作:

def func1():
 var1 = "something"

def func2():
 print var1

这样做的正确模式是什么?我没有在文档中找到

PS。如果可能的话,我的计划不是让'var1'成为一个全局变量。

感谢。

5 个答案:

答案 0 :(得分:5)

我假设您不希望将变量作为函数调用之间的参数传递。在函数之间共享状态的常规方法是定义一个类。对于您的特定问题可能有点过分,但它可以让您拥有共享状态并使其受到控制:

class C:
    def func1(self):
     self.var1 = "something"

    def func2(self):
     print self.var1

foo = C()
foo.func1()
foo.func2()

答案 1 :(得分:3)

不,不可能做那样的事情。这是因为有一种叫做“scope”的东西。您可以创建模块级变量,也可以将其放在OOP构造中。

答案 2 :(得分:0)

你的func2()试图在另一个函数的范围内打印一个变量。你可以

  • 调用func1时返回var1的值(例如def func2():print func1()}
  • 从func1调用func2并传递var1
  • 的值

答案 3 :(得分:0)

您可以尝试类似

的内容
def func1():
   var1 = "something"
   return var1

def func2():
   print func1()

如果你需要func1做更多的事情,而不仅仅是定义var1,那么你可能需要定义一个类并创建对象?见http://docs.python.org/tutorial/classes.html

答案 4 :(得分:0)

你可以尝试:

filename.py:

def func1():
     var1 = "something"

def func2():
     var = __ import__('filename').var1
     print var