6

我的 Python 脚本中有一个函数,其中创建了多个变量,我想在其他函数中使用它们。我想用global这个,但我认为这样做是不正确的。

那么谁能告诉我在一个函数中为其他函数创建变量的最佳方法是什么?

4

4 回答 4

8

将变量组织成一个。在一个函数中实例化该类,然后将该实例传递到您需要的任何地方。

经验法则:如果在某些时候使某些东西全球化似乎是一个很好的解决方案,那就不要这样做。总有更好的方法。

于 2012-05-27T16:14:20.957 回答
2

您可以创建一个“命名空间”对象——一个用作命名空间的对象,以保持您的全局命名空间清晰:

class namespace():
    pass

global_data=namespace()

def add_attributes(obj):
    obj.foo="bar"

add_attributes(global_data)
print (global_data.foo)  #prints "bar"

但是,这仅比使用 global 关键字稍微好一点。正如保罗所说,你真的很想在这里上课。

于 2012-05-27T16:23:10.217 回答
2

将变量声明为函数的属性。

def f1():
    f1.a=100
    f2.b=200

def f2():
    print(f1.a,f2.b)

f1()
f2()

输出:

100 200
于 2012-05-27T16:30:12.820 回答
1

这可能是实现类的好地方。这有很多优点。 请参阅教程中的类

于 2012-05-27T16:19:20.740 回答