Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/318.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使所有变量成为全局变量_Python_Variables_Global Variables - Fatal编程技术网

Python 使所有变量成为全局变量

Python 使所有变量成为全局变量,python,variables,global-variables,Python,Variables,Global Variables,我的Python脚本中有一个函数,其中创建了多个变量,我想在其他函数中使用它们。我曾想过为此使用global,但我认为这样做是不正确的 那么,有人能告诉我,在函数中为其他函数创建变量的最佳方法是什么吗?将变量组织成一个函数。在一个函数中实例化该类,然后将实例传递到任何需要的地方 经验法则:如果在某个时候,让某件事情全球化似乎是一个好的解决方案,那么就不要这样做。总有更好的方法。这可能是实现类的好地方。这有很多优点 您可以创建一个“名称空间”对象——一个作为名称空间来保持全局名称空间清晰的对象:

我的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关键字稍微好一点。正如Paul所说,这里确实需要一个类。

将变量声明为函数的属性

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

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

f1()
f2()
输出:

100 200

这样做而不是在类中做有什么好处吗?@BirdJaguarIV如果不熟悉面向对象的方法,可以使用它。