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