学习Python:从另一个函数打印函数中的变量

学习Python:从另一个函数打印函数中的变量,python,Python,我想在python中执行以下操作: def func1(): var1 = "something" def func2(): print var1 执行此操作的正确模式是什么?我根本没有在文档中找到 如果可能的话,我不打算让“var1”成为一个全局变量 谢谢。您的func2()正试图在另一个函数的作用域中打印变量。你也可以 调用func1时返回var1的值(例如def func2():print func1()} 从func1调用func2并传递var1的值 不,这样做是不可能的。这是

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

def func1():
 var1 = "something"

def func2():
 print var1
执行此操作的正确模式是什么?我根本没有在文档中找到

如果可能的话,我不打算让“var1”成为一个全局变量

谢谢。

您的func2()正试图在另一个函数的作用域中打印变量。你也可以

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

不,这样做是不可能的。这是因为一个名为“”的东西。您可以创建一个模块级变量或将其放置在OOP构造中。

您可以尝试类似的方法

def func1():
   var1 = "something"
   return var1

def func2():
   print func1()

如果您需要func1做的不仅仅是定义var1,那么您可能需要定义一个类并创建对象?请参见

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

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

    def func2(self):
     print self.var1

foo = C()
foo.func1()
foo.func2()
你可以试试:

filename.py:



你的作用域设置失败。词法作用域设置禁止这样做。动态作用域设置就是为了实现这一点(使调用者的局部变量对被调用者可用)。现在它对我起作用了……我创建了一个像你写的那样的类,我可以“查看”并使用该变量!
def func1():
     var1 = "something"

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