Anu*_*nuj 2 python django lambda
我正在尝试根据不同的参数创建一个timedelta字典.例如.
from django.utils import timezone
a = {'Minutes':(lambda dt,delta: dt + timezone.timedelta(minutes=delta)),
'Hours': (lambda dt,delta: dt + timezone.timedelta(hours=delta)}
Run Code Online (Sandbox Code Playgroud)
现在使用上面的字典时:
new_time = a['Minutes'](timezone.now(),10)
Run Code Online (Sandbox Code Playgroud)
它给出以下错误:
/usr/local/lib/python2.7/dist-packages/django/core/management/commands/shell.pyc in <lambda>(dt, delta)
----> 1 a = {'Minutes':(lambda dt,delta: dt + timezone.timedelta(minutes=delta))}
NameError: global name 'timezone' is not defined
Run Code Online (Sandbox Code Playgroud)
请解释为什么我不能在lambda中使用导入的函数.
参考这里:https://code.djangoproject.com/ticket/18204
(在Django 1.6中修复)
另见:
https://stackoverflow.com/a/19004592/202168
https://github.com/ipython/ipython/issues/2532/
我在这里发布了这个,因为我经常遇到这个问题(并且这几条评论似乎与shell有关),虽然OP没有声明它们完全在Django shell中,所以这个答案可能无关紧要.
| 归档时间: |
|
| 查看次数: |
744 次 |
| 最近记录: |