相关疑难解决方法(0)

可变函数参数默认值的良好用途?

在Python中将一个可变对象设置为函数中参数的默认值是一个常见的错误.以下是David Goodger撰写的优秀文章中的一个例子:

>>> def bad_append(new_item, a_list=[]):
        a_list.append(new_item)
        return a_list
>>> print bad_append('one')
['one']
>>> print bad_append('two')
['one', 'two']
Run Code Online (Sandbox Code Playgroud)

之所以出现这种情况的解释是在这里.

现在我的问题:这个语法有一个很好的用例吗?

我的意思是,如果遇到它的每个人都犯了同样的错误,调试它,理解问题,从而试图避免它,这种语法有什么用?

python arguments mutable default-value

59
推荐指数
5
解决办法
7022
查看次数

嵌套循环中的Django模板计数器

嗨,我有一个两个字典的列表,我将传递给Django模板:

base_parts = [
    {'important item': 43},
    {'lesser item': 22, 'lesser item': 3, 'lesser item': 45}
]
Run Code Online (Sandbox Code Playgroud)

在我的模板中,我可以这样做:

{% for base_part in base_parts %}
    {% for k, v in base_part.items %}

    {# ...do stuff #}

    {# I try to get a running total of items to use as an ID #}
    inner ID: {% forloop.counter0 %}< br/>
    outer ID: {% forloop.parentloop.counter0 %}< br/>

    {% endfor %}
{% endfor %}
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,我想要的是我迭代完成的项目总数的运行总计,但我包含的两种方法都包含返回重复项.我知道我可以连接循环,但我使用的是一个formset,并且真的希望id被索引为0,1,2 ......等等.

有没有办法在模板中实现这种类型的计数?

任何帮助非常感谢.

编辑

目前的输出看起来像:

outerID: 0<br />
innerID: 0<br …
Run Code Online (Sandbox Code Playgroud)

django django-templates

12
推荐指数
1
解决办法
1万
查看次数