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

3 投票
5 回答
25154 浏览
提问于 2025-04-16 13:26

我想在Python中做以下事情:

def func1():
 var1 = "something"

def func2():
 print var1

请问我该用什么正确的模式来实现这个呢?我在文档里完全没找到相关信息。

另外,如果可以的话,我并不打算把这个'var1'变成全局变量。

谢谢。

5 个回答

0

你可以试试下面这样的代码:

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

def func2():
   print func1()

如果你希望func1做的不仅仅是定义var1,那你可能需要定义一个类并创建对象。可以看看这个链接了解更多:http://docs.python.org/tutorial/classes.html

4

不,这样做是不可能的。这是因为有个叫做“作用域”的东西。你可以选择创建一个模块级的变量,或者把它放在面向对象的结构里。

7

我猜你不想在函数调用之间把变量作为参数传递。通常在函数之间共享状态的方法是定义一个类。虽然对于你的具体问题来说,这可能有点过于复杂,但这样可以让你有一个共享的状态,并且可以更好地管理它:

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

    def func2(self):
     print self.var1

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

撰写回答