我想在python中执行以下操作:
def func1():
var1 = "something"
def func2():
print var1
这样做的正确模式是什么?我没有在文档中找到
PS。如果可能的话,我的计划不是让'var1'成为一个全局变量。
感谢。
答案 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()试图在另一个函数的范围内打印一个变量。你可以
答案 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