【发布时间】:2012-09-03 04:58:26
【问题描述】:
引用this answer:
除了元组是不可变的之外,还有一个语义区别应该指导它们的使用。元组是异构数据结构(即它们的条目具有不同的含义),而列表是同构序列。元组有结构,列表有顺序。
这对我来说很有意义。但是为什么 Django 使用元组而不是列表进行设置呢?示例:
INSTALLED_APPS = (
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'django.contrib.messages',
'django.contrib.staticfiles',
)
这(以及所有其他设置)在语义上不是列表的完美案例吗?
【问题讨论】:
-
是不是表示运行时无法安装其他应用?
-
我认为这是因为当时 Django 的创建者认为它们更快。看到这个:code.djangoproject.com/ticket/8846
-
看起来,有点像一些评论者在 user1474837 的链接 (code.djangoproject.com/ticket/8846) 上所说的那样,元组的不变性方面可能被用作 Django 设置是只读的语义指示符。如果您忽略关于列表与元组性能的错误假设,这似乎是唯一合乎逻辑的原因。
标签: python django list tuples semantics