我正在使用django' debug_toolbar我需要在元组 {{1}中的其他默认中间件之前插入它的中间件类名称} MIDDLEWARE_CLASSES
因为它的顺序会影响 debug_toolbar 的行为。
所以我想要的是像
settings.py
而不是
MIDDLEWARE_CLASSES.push_front('debug_toolbar.middleware.DebugToolbarMiddleware')
其中MIDDLEWARE_CLASSES = ('debug_toolbar.middleware.DebugToolbarMiddleware',) + MIDDLEWARE_CLASSES
是元组。
有没有更好的方法可以避免两次写原始元组?
答案 0 :(得分:4)
元组是不可变的,所以你不能做mytuple.append(value)
之类的事情。您将始终需要创建一个新的(或更改其列表的类型,然后插入值并将其更改回来),以便更改变量中的值。如果您的代码不需要使用元组,那么使用列表会更容易。
答案 1 :(得分:2)
如果你不是一个绝对需要一个元组,但是你可以使用
MIDDLEWARE_CLASSES = [... whatever]
MIDDLEWARE_CLASSES.insert(0, 'debug_toolbar.middleware.DebugToolbarMiddleware')
语义列表适用于像井,列表,i。即具有相同(或类似)性质的事物的枚举。元组用于组合事物,通常可以用列表元素发生。
MIDDLEWARE_CLASSES
听起来好像你想要列出一些要在中间件中使用的类,所以即使在语义上,列表也会更好。