Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/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
存储和加载str:func Python字典_Python_Sockets_Dictionary_Import_Module - Fatal编程技术网

存储和加载str:func Python字典

存储和加载str:func Python字典,python,sockets,dictionary,import,module,Python,Sockets,Dictionary,Import,Module,好的,我想知道这样做是否会影响代码,以及我是否做得正确 所以基本上,假设在一个文件中有一个名为commands的字典(在一个类中),在另一个文件中创建另一个类的对象,并使用字典。在运行时,我编辑字典并添加新函数。现在我需要重新加载字典,而不必重新启动整个脚本(因为这会影响很多使用我的服务的人)。如果我向脚本(它是一个套接字服务器)发送一个信号,指示应该重新加载字典。在已经导入mid代码之后,如何重新导入模块?重新导入它会影响由它生成的对象吗,或者我必须以某种方式重新加载对象吗?(请注意,这些对象

好的,我想知道这样做是否会影响代码,以及我是否做得正确


所以基本上,假设在一个文件中有一个名为commands的字典(在一个类中),在另一个文件中创建另一个类的对象,并使用字典。在运行时,我编辑字典并添加新函数。现在我需要重新加载字典,而不必重新启动整个脚本(因为这会影响很多使用我的服务的人)。如果我向脚本(它是一个套接字服务器)发送一个信号,指示应该重新加载字典。在已经导入mid代码之后,如何重新导入模块?重新导入它会影响由它生成的对象吗,或者我必须以某种方式重新加载对象吗?(请注意,这些对象包含一个活动套接字,我不希望终止该套接字)。

最好将数据存储在数据库中,比如支持类似字典的数据。这样可以避免完全重新加载的问题,因为数据库进程确保获取的数据始终是最新的。

您确定它不会自动“重新加载”吗?如果您在
bar.py
中引用了
foo.my_dict
,并且修改了
foo.my_dict
bar
的输出将反映这一点。我不会像我的dict[“key”]=“value”那样编辑它,但我实际上编辑了文件本身,这就是为什么我需要以某种方式重新加载它。我会,但字典是str:func,我不能将python函数存储在数据库中。这样如何:您不存储函数对象,而是存储函数源代码。您还可以序列化Python函数