Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.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_Integration_Global - Fatal编程技术网

Python 使所有正在运行的程序都可以访问变量

Python 使所有正在运行的程序都可以访问变量,python,variables,integration,global,Python,Variables,Integration,Global,我的混乱解决方案: 我是一名初级python程序员,由于缺乏高级知识,我经常使用原始工具来完成高级项目。目前,我正在尝试在运行时在程序之间交换数据。我试过写和读文本文件。每个程序都有一个单独的纯写文本文件,以避免两个程序同时写入一个文件 为了将所有数据收集到一个文件中,我编写了一个单独的程序来读取只读文本文件,并将所有数据合并到一个文件中。然后,所有程序都可以访问该文件中所有其他程序的变量 我对更简单解决方案的要求: 尽管上面的解决方案工作得很好,但我正试图找到一种更优雅的方式在Python程序

我的混乱解决方案:

我是一名初级python程序员,由于缺乏高级知识,我经常使用原始工具来完成高级项目。目前,我正在尝试在运行时在程序之间交换数据。我试过写和读文本文件。每个程序都有一个单独的纯写文本文件,以避免两个程序同时写入一个文件

为了将所有数据收集到一个文件中,我编写了一个单独的程序来读取只读文本文件,并将所有数据合并到一个文件中。然后,所有程序都可以访问该文件中所有其他程序的变量

我对更简单解决方案的要求:

尽管上面的解决方案工作得很好,但我正试图找到一种更优雅的方式在Python程序之间共享变量。您能告诉我是否有更好的方法在Python中实现这一点吗

非常感谢。

或多或少是为您描述的内容而设计的,因为变量和内存一样不稳定

是另一个很好的选择,与memcached有一些相似之处,但是可以使数据持久化

我能想到的所有其他直接共享选项都直接属于数据库的范畴(不管是SQL还是非SQL),除了使用平面文件,这就是您现在正在做的

最后,您可以重构这些程序,这样它们就可以互相提供服务,在需要时交换信息,而不是直接共享价值。在某些情况下,这可能会增加开销和复杂性,但如果变量值发生变化,则无需验证其缓存。

您可以使用它在程序之间进行通信。但是,如果您共享的数据总是与所有程序相关,那么,正如其他人所建议的那样,中央数据库将是更好的选择


或者,如果所有的程序都是用Python编写的,那么您可以在不同的平台上从同一个解释器启动它们。线程共享相同的内存空间,因此它们之间共享变量已经内置(请确保以线程安全的方式读/写它们)。

您考虑过数据库吗?但是如果变量只有一个,txt文件确实更好:)或者基于文件的数据库-sqlite,H2为什么您要这样做?如果一组程序在运行时都需要相同的信息,并且需要相互通信,为什么它们的类/函数不在同一个程序中?如果您告诉我们为什么需要此功能,我们可能会给出一个更合理的解决方案。如果您有两个Python程序,并且希望它们能够交互,则不需要在它们之间添加额外的“数据层”。只需从另一个导入其中一个,并直接共享数据。谢谢,我将了解更多关于这些模块的信息。Redis看起来很酷,我想它会节省我很多时间:)