小编Dhr*_*awa的帖子

使用dict理解时的问题.NameError:未定义全局名称

我正在尝试使用key as name和value 创建一个dict 作为相应的User对象.

我从Django shell包装器使用Python shell python manage.py shell:

>>> from django.contrib.auth.models import User
>>> names = ['carl', 'jim', 'jack', 'john', 'mark']
# Now using some dict comprehension
>>> u = {name: User.objects.get(username=name) for name in names}
NameError: global name 'User' is not defined
Run Code Online (Sandbox Code Playgroud)

但是,这对我有用:

u = {}
for name in names:
    u[name] = User.objects.get(username=name)
Run Code Online (Sandbox Code Playgroud)

我得到了所需的输出,即:

{ 
  'carl': <User: carl>,
  'jack': <User: jack>,
  'jim' : <User: jim>,
  'john': <User: john>,
  'mark': <User: mark>
} …
Run Code Online (Sandbox Code Playgroud)

python shell dictionary namespaces dictionary-comprehension

9
推荐指数
1
解决办法
2542
查看次数