使所有变量全局化



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

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

将变量组织到一个类中。 在一个函数中实例化类,然后将实例传递到需要它的任何位置。

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

您可以创建一个"命名空间"对象 - 一个充当命名空间的对象,目的是保持全局命名空间清晰:

class namespace():
    pass
global_data=namespace()
def add_attributes(obj):
    obj.foo="bar"
add_attributes(global_data)
print (global_data.foo)  #prints "bar"

但是,这仅比使用 global 关键字略好。 正如保罗提到的,你真的想要一个类。

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

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

输出:

100 200

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

相关内容

  • 没有找到相关文章

最新更新