Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/359.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_Python 3.x_Dictionary - Fatal编程技术网

Python 我正在构建的模块中需要几个字典数据结构。我应该在本地还是在全球范围内定义它们?

Python 我正在构建的模块中需要几个字典数据结构。我应该在本地还是在全球范围内定义它们?,python,python-3.x,dictionary,Python,Python 3.x,Dictionary,我想建立这个模块是尽可能多的内存效率。并非模块中的所有函数都需要这些字典 每个字典最多可以保存几十个值。假设您在整个过程中需要字典,而不仅仅是在一个函数范围内。您可以选择这样的单例设计模式: somemodule.py 只有在您需要时才会实例化它,而且bonus始终使用相同的dict 用法如下: from somemodule import example_dict def some_method(): # ... code ... my_dict = example_dict

我想建立这个模块是尽可能多的内存效率。并非模块中的所有函数都需要这些字典


每个字典最多可以保存几十个值。

假设您在整个过程中需要字典,而不仅仅是在一个函数范围内。您可以选择这样的单例设计模式:

somemodule.py

只有在您需要时才会实例化它,而且bonus始终使用相同的dict

用法如下:

from somemodule import example_dict

def some_method():
    # ... code ...
    my_dict = example_dict()
    # ... more code ...

脚本运行时是否总是需要字典?这是我的一些脚本需要的模块。当我需要从这个模块中导出一个函数时,我将只从这个模块中导入它。在这种情况下,如果我在模块中全局定义了这些字典,以便所有函数都可以使用它,而不是本地使用函数中需要它的每个字典,会发生什么情况?在我的例子中,我首先将每个字典限制为它们在模块中需要的函数。然后我意识到有些词典可能在几个功能中需要不止一次。这就是为什么我把他们的定义移到了全局定义之外。在这种情况下,您认为您的实现将提高我的代码的效率吗?它将节省空间是的。当你确定你已经完成了一个dict时,你甚至可以使用del。为什么你要用两个下划线符号来编写示例字典?为了拥有多个字典,我可以在somemodule.py中添加多个字典方法吗?如何调试可能实现的效率?我想看看每个内存的使用情况
from somemodule import example_dict

def some_method():
    # ... code ...
    my_dict = example_dict()
    # ... more code ...