Python论坛  - 讨论区

标题:[python-chinese] django 中 一个奇怪问题

2008年01月08日 星期二 12:09

1234 mydjango在gmail.com
星期二 一月 8 12:09:38 HKT 2008

ÔÚ manage.py shellÖÐ

ʹÓà  from django import db ûÓÐÎÊÌâ

µ«ÊÇʹÓà  getattr(django,'db') ¾ÍÏÔʾ NameError: name 'django' is not defined

>>> from django import db
>>> getattr(django,'db')
Traceback (most recent call last):
  File "", line 1, in 
NameError: name 'django' is not defined
>>>
-------------- 下一部分 --------------
Ò»¸öHTML¸½¼þ±»ÒƳý...
URL: http://python.cn/pipermail/python-chinese/attachments/20080108/824756d5/attachment.htm 

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2008年01月08日 星期二 12:23

limodou limodou在gmail.com
星期二 一月 8 12:23:59 HKT 2008

On Jan 8, 2008 12:09 PM, 1234 <mydjango在gmail.com> wrote:
> 在 manage.py shell中
>
> 使用  from django import db 没有问题
>
> 但是使用  getattr(django,'db') 就显示 NameError: name 'django' is not defined
>
> >>> from django import db
> >>> getattr(django,'db')
> Traceback (most recent call last):
>   File "", line 1, in 
> NameError: name 'django' is not defined
> >>>
>
使用from这种导入方式会将对象直接注入当前的namespace,所以它是不需要django前缀的。

-- 
I like python!
UliPad <>: http://code.google.com/p/ulipad/
meide <>: http://code.google.com/p/meide/
My Blog: http://www.donews.net/limodou

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2008年01月08日 星期二 13:44

1234 mydjango在gmail.com
星期二 一月 8 13:44:46 HKT 2008

>>> import wedding
>>> hasattr(wedding.SitesModule,'weddingmo')
False
>>> from wedding.SitesModule import weddingmo
>>> hasattr(wedding.SitesModule,'weddingmo')
True
>>>
лл limodou ~~~  Äã¿´¿´ÎªÊ²Ã´»áÕâÑù£¿ Ϊʲô Òªimport weddingmoÒÔºó hasattr ¾ÍΪTrueÁË£¿ ºóÃæµÄÕâ¸ö
weddingmo ÊǸù¾ÝÌõ¼þ¶¯Ì¬µ÷ÓõÄÄ£¿é

ÔÚ08-1-8£¬limodou <limodou在gmail.com> дµÀ£º
>
> On Jan 8, 2008 12:09 PM, 1234 <mydjango在gmail.com> wrote:
> > ÔÚ manage.py shellÖÐ
> >
> > ʹÓà  from django import db ûÓÐÎÊÌâ
> >
> > µ«ÊÇʹÓà  getattr(django,'db') ¾ÍÏÔʾ NameError: name 'django' is not defined
> >
> > >>> from django import db
> > >>> getattr(django,'db')
> > Traceback (most recent call last):
> >   File "", line 1, in 
> > NameError: name 'django' is not defined
> > >>>
> >
> ʹÓÃfromÕâÖÖµ¼È뷽ʽ»á½«¶ÔÏóÖ±½Ó×¢È뵱ǰµÄnamespace£¬ËùÒÔËüÊDz»ÐèÒªdjangoǰ׺µÄ¡£
>
> --
> I like python!
> UliPad <>: http://code.google.com/p/ulipad/
> meide <>: http://code.google.com/p/meide/
> My Blog: http://www.donews.net/limodou
> _______________________________________________
> python-chinese
> Post: send python-chinese在lists.python.cn
> Subscribe: send subscribe to python-chinese-request在lists.python.cn
> Unsubscribe: send unsubscribe to  python-chinese-request在lists.python.cn
> Detail Info: http://python.cn/mailman/listinfo/python-chinese
-------------- 下一部分 --------------
Ò»¸öHTML¸½¼þ±»ÒƳý...
URL: http://python.cn/pipermail/python-chinese/attachments/20080108/098f8bc7/attachment.html 

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2008年01月08日 星期二 13:58

limodou limodou在gmail.com
星期二 一月 8 13:58:43 HKT 2008

On Jan 8, 2008 1:44 PM, 1234 <mydjango在gmail.com> wrote:
> >>> import wedding
> >>> hasattr(wedding.SitesModule,'weddingmo')
> False
> >>> from wedding.SitesModule import weddingmo
> >>> hasattr(wedding.SitesModule,'weddingmo')
> True
> >>>
> 谢谢 limodou ~~~  你看看为什么会这样? 为什么 要import weddingmo以后 hasattr 就为True了? 后面的这个
> weddingmo 是根据条件动态调用的模块
>
在另一邮件中已经回答,关键是看包下的__init__.py是否做了特殊的处理。

-- 
I like python!
UliPad <>: http://code.google.com/p/ulipad/
meide <>: http://code.google.com/p/meide/
My Blog: http://www.donews.net/limodou

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

如下红色区域有误,请重新填写。

    你的回复:

    请 登录 后回复。还没有在Zeuux哲思注册吗?现在 注册 !

    Zeuux © 2024

    京ICP备05028076号