【问题标题】:Best way of storing records and then iterating through them?存储记录然后遍历它们的最佳方式?
【发布时间】:2015-12-03 20:12:49
【问题描述】:

旧习惯就是这样,我会声明全局变量,并可能使用列表来存储记录。我很感激这不是现在最好的方法,而且 Python 通过必须不断声明“全局”来积极阻止你这样做。

那我该怎么办?我在想我也许应该使用实例,但我不知道如何根据标识符创建一个唯一的实例名称(所有记录都有一个唯一的 ID),然后找出我有多少个实例。

我可以用字典吗?

最重要的是可以在我的代码中的任何位置访问这些值,并且我可以列出记录的数量并轻松引用/更改这些值。

【问题讨论】:

  • 你想做什么?显示一些代码。

标签: python


【解决方案1】:

如果没有关于您要解决的问题、代码范围和代码架构的更多信息,这很难说。

一般来说:

如果您正在编写一个范围相当小的脚本,那么在脚本的全局命名空间中声明变量确实没有任何问题。

如果您正在编写一个更大的系统 - 超出一个模块或文件,但不在多进程/多线程环境中运行,那么您可以创建一个模块(作为单独的文件)来处理存储您重复使用的数据。每当您需要读取或写入该数据时,您都可以导入该模块。该模块可以只公开简单的变量,或者它可以将数据包装在类中并公开用于创建/读取/更新/删除的方法。

如果您在多进程/多线程环境中运行,那么任何类型的全局内存变量存储都会有问题。您将需要使用某种外部存储——Redis 等用于临时存储,或某种数据库用于永久存储。

【讨论】:

  • 我有几个线程,没什么大不了的。我想每个函数中的所有全局变量都刚刚开始看起来很混乱。我发现自己希望有一种方法可以只声明一次全局,那是我开始认为我做错了;)
  • 听起来您可能使用的 global 关键字超出了您的需要。看看docs.python.org/2/faq/…docs.python.org/2/faq/…
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多