管理站点列表与元组 django

She*_*pat 3 django django-admin

当自定义管理站点时,我们可以使用listtuple喜欢

@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 
Run Code Online (Sandbox Code Playgroud)

我很好奇使用列表与元组相比是否有任何区别,反之亦然,例如在检索管理站点或类似内容时的性能。我知道元组比列表的性能更好,但我们不会在这里循环。我查看了列表和元组之间的区别是什么为什么-django-use-tuples-for-settings-and-not-lists为什么-djangos-modeladmin-uses-lists-over -元组,反之亦然,但没有得到我的答案。一直使用元组更好吗?我专门询问管理网站。

Tim*_*Tim 6

就所有实际意图和目的而言,这绝对没有任何区别。

性能上可能存在一些微小的差异,但在这种情况下,速度上的任何差异都非常小,永远不会产生任何差异。还有其他一些事情会对性能产生更大的影响。如果有一个应用程序在我们正在讨论的规模上性能非常重要,那么您无论如何都不会使用 django-admin 来实现其性能关键部分。(它并非设计为面向用户的生产就绪站点)。

然而...

使用元组而不是列表是有充分理由的。习俗!!这就是 django 官方文档 / 和其他人所做的。它可能看起来不是很重要,但如果所有代码看起来都一样,就会使其更具可读性。

我可以看到您可能会争辩说使用列表而不是元组不会影响可读性。然而,如果我正在阅读一些 django-admin 代码并看到正在使用列表,我可能会停下来思考一下为什么使用列表而不是元组。这对我来说很突出,我想知道为什么要这样做。最终我意识到没有充分的理由,而且时间就被浪费了。

与您可能使用的原因类似,样式指南(例如 PEP8)或格式化程序(例如black)来确保每个人的代码看起来都相同。它只是让代码变得更好一点。