django - 管理站点列表与元组 Django
问题描述
在自定义管理站点时,我们可以使用list
或tuple
喜欢
@admin.register(Model_name)
class Model_nameAdmin(admin.ModelAdmin):
list_display = ['a', 'b', 'c'] # using list
# lets say a, b, c are fields of model(Model_name)
or
list_display = ('a', 'b', 'c') # using tuple
我很好奇在检索管理站点或类似的东西时使用元组列表或反之亦然的性能有什么区别。我知道元组在性能方面比列表更好,但我们没有在这里循环。我看过whats-the-difference-between-lists-and-tuples,why-does-django-use-tuples-for-settings-and-not-lists, why-djangos-modeladmin-uses-lists-over -tuples-and-vice-versa,但没有得到我的答案。一直使用元组会更好吗?我专门询问管理站点。
解决方案
对于所有实际意图和目的,这将完全没有任何区别。
性能上可能存在一些边际差异,但在这种情况下,速度上的任何差异都会非常小,以至于永远不会产生任何影响。还有其他一些事情会对性能产生更大的影响。如果有一个应用程序的性能在我们正在谈论的那种规模上很重要,那么无论如何你都不会使用 django-admin 来处理它的性能关键部分。(它并非设计为面向用户的生产就绪站点)。
然而...
使用元组而不是列表是有充分理由的。习俗!!这是官方 django 文档 / 和其他所有人所做的。它可能看起来不是很重要,但如果所有代码看起来都一样,它会使其更具可读性。
我可以看到您可能会争辩说使用列表而不是元组不会影响可读性。但是,如果我正在阅读一些 django-admin 代码并看到正在使用的列表,我可能会停下来思考一下为什么使用列表而不是元组。它对我来说很突出,我想知道为什么会这样做。最终我意识到没有充分的理由,而那段时间会被浪费掉。
与您可能使用的原因类似,样式指南(例如 PEP8)或格式化程序(例如black
)以确保每个人的代码看起来都相同。它只是使代码更好一点。
推荐阅读
- lxml - 我无法使用 nsmap 为 lxml 库添加标签
- python-3.x - how i can do some function after client's push inline keyboard button in telegram chat
- tensorflow - 使用 DeepExplainer 获取 Keras 中具有 tensorflow 后端的 MLP 模型的 shap 值
- react-native - ReactNative,使用 expo 裸工作流有什么好处?
- .net - 我需要用许多表映射一个复杂的类型关系
- google-apps-script - 如何使用 Google Docs 中的 google apps 脚本设置表格中一行的背景颜色?
- angular - Angular ValidatorFn returns, but does not block Form
- google-apps-script - 如何从各种工作表中的各种数据创建多个文件夹?
- c# - 无限递归尝试解析自定义 DI 容器中的类型
- javascript - HTML/CSS 性能:用于大型数据表的 flexbox 与表