2007年03月13日 星期二 16:45
ÎÒµÄÏîÄ¿ÊÇÕâÑùµÄ /src __init__.py /src/net src/net/__init__.py /src/net/CURLFetcher.py /src/test.py CURLFetcherÊÇÒ»¸öclass ÔÚtest.pyÖÐÈç¹ûÎÒÕâÑùд from net.CURLFetcher import CURLFetcher Ò»ÇÐOK£¬ÎÒ¿ÉÒÔÔÚºóÃæµÄ´úÂëÖÐʹÓÃCURLFetcherÀà ¿ÉÊÇÈç¹ûÎÒÕâÑùд from net import CURLFetcher ÎҾͱØÐëÕâÑù²ÅÄÜʹÓÃÕâ¸öÀà cf = CURLFetcher.CURLFetcher("http://www.sina.com.cn") Èç¹ûÎÒÖ±½Óд cf = CURLFetcher("http://www.sina.com.cn")£¬»áµÃµ½´íÎó£º Traceback (most recent call last): File "D:\dev\prj\newzab\newzab\core\test.py", line 3, inCURLFetcher("http://www.sina.com.cn") TypeError: 'module' object is not callable ÎÒ°Ñsrc/net/__init__.pyɾÁËÒ²Ò»Ñù¡£ ÎÒÊÇpython³õѧÕߣ¬ÏÖÔÚ±»package moduleµÄÓ÷¨ÒѾÓеã¸ßÔÎÁË£¬ÎªÊ²Ã´ CURLFetcher±ØÐë³öÏÖÁ½´Î²ÅÐÐÄØ£¬ÎÒ¾õµÃ from net import net CURLFetcher cf = CURLFetcher("http://www.sina.com.cn") ²ÅÓ¦¸Ã×îÕýÈ·Ã÷Á˵Äд·¨°¡£¬ÄÇλ´óϺÄܸøÎÒ½âÊÍÒ»ÏÂѽ¡£ -------------- 下一部分 -------------- Ò»¸öHTML¸½¼þ±»ÒƳý... URL: http://python.cn/pipermail/python-chinese/attachments/20070313/613955d8/attachment.htm
2007年03月13日 星期二 17:01
On 3/13/07, Pickerel Yee <pickerel at gmail.com> wrote: > > 我的项目是这样的 > /src > __init__.py > /src/net > src/net/__init__.py > /src/net/CURLFetcher.py > /src/test.py > > > CURLFetcher是一个class > 在test.py中如果我这样写 > from net.CURLFetcher import CURLFetcher > 一切OK,我可以在后面的代码中使用CURLFetcher类 > > 可是如果我这样写 from net import CURLFetcher > 我就必须这样才能使用这个类 > cf = CURLFetcher.CURLFetcher("http://www.sina.com.cn") > > 如果我直接写 cf = CURLFetcher("http://www.sina.com.cn"),会得到错误: > Traceback (most recent call last): > File "D:\dev\prj\newzab\newzab\core\test.py", line 3, in> CURLFetcher("http://www.sina.com.cn") > TypeError: 'module' object is not callable > 我把src/net/__init__.py删了也一样。 > > 我是python初学者,现在被package module的用法已经有点高晕了,为什么 CURLFetcher必须出现两次才行呢,我觉得 > from net import net CURLFetcher > cf = CURLFetcher("http://www.sina.com.cn") > 才应该最正确明了的写法啊,那位大虾能给我解释一下呀。 > > > > > _______________________________________________ > python-chinese > Post: send python-chinese at lists.python.cn > Subscribe: send subscribe to python-chinese-request at lists.python.cn > Unsubscribe: send unsubscribe to python-chinese-request at lists.python.cn > Detail Info: http://python.cn/mailman/listinfo/python-chinese > 在你这里 CURLFetcher.py 是一个模块,模块里面又有一个 class CURLFetcher,这两个是不同的对象,如果你想要 class CURLFetcher 直接出现在 net 名字空间下面,你可以把 class CURLFetcher 写到 net/__init__.py 里面去。 -- http://codeplayer.blogspot.com/ -------------- next part -------------- An HTML attachment was scrubbed... URL: http://python.cn/pipermail/python-chinese/attachments/20070313/36ecb0f5/attachment.html
2007年03月13日 星期二 17:06
On 3/13/07, Pickerel Yee <pickerel在gmail.com> wrote: > > > 我的项目是这样的 > /src > __init__.py > /src/net > src/net/__init__.py > /src/net/CURLFetcher.py > /src/test.py > > > CURLFetcher是一个class > 在test.py中如果我这样写 > from net.CURLFetcher import CURLFetcher > 一切OK,我可以在后面的代码中使用CURLFetcher类 > > 可是如果我这样写 from net import CURLFetcher > 我就必须这样才能使用这个类 > cf = CURLFetcher.CURLFetcher("http://www.sina.com.cn") > > 如果我直接写 cf = CURLFetcher("http://www.sina.com.cn"),会得到错误: > Traceback (most recent call last): > File "D:\dev\prj\newzab\newzab\core\test.py", line 3, in >> CURLFetcher("http://www.sina.com.cn") > TypeError: 'module' object is not callable > 我把src/net/__init__.py删了也一样。 > > 我是python初学者,现在被package module的用法已经有点高晕了,为什么 CURLFetcher必须出现两次才行呢,我觉得 > from net import net CURLFetcher 可以使用 from net.CURLFetcher import * 尝试一下? 不用解释,尝试什么样可以,就使用之 > cf = CURLFetcher("http://www.sina.com.cn") > 才应该最正确明了的写法啊,那位大虾能给我解释一下呀。 > > > > _______________________________________________ > 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 > -- '''Time is unimportant, only life important! http://zoomquiet.org blog在http://blog.zoomquiet.org/pyblosxom/ wiki在http://wiki.woodpecker.org.cn/moin/ZoomQuiet scrap在http://floss.zoomquiet.org douban在http://www.douban.com/people/zoomq/ ____________________________________ Pls. use OpenOffice.org to replace M$ Office. http://zh.openoffice.org Pls. use 7-zip to replace WinRAR/WinZip. http://7-zip.org/zh-cn/ You can get the truely Freedom 4 software. '''
2007年03月13日 星期二 17:10
On 3/13/07, Pickerel Yee <pickerel at gmail.com> wrote: > > 我的项目是这样的 > /src > __init__.py > /src/net > src/net/__init__.py > /src/net/CURLFetcher.py > /src/test.py > > > CURLFetcher是一个class > 在test.py中如果我这样写 > from net.CURLFetcher import CURLFetcher > 一切OK,我可以在后面的代码中使用CURLFetcher类 > > 可是如果我这样写 from net import CURLFetcher > 我就必须这样才能使用这个类 > cf = CURLFetcher.CURLFetcher("http://www.sina.com.cn") > > 如果我直接写 cf = CURLFetcher("http://www.sina.com.cn"),会得到错误: > Traceback (most recent call last): > File "D:\dev\prj\newzab\newzab\core\test.py", line 3, in> CURLFetcher("http://www.sina.com.cn") > TypeError: 'module' object is not callable > 我把src/net/__init__.py删了也一样。 > > 我是python初学者,现在被package module的用法已经有点高晕了,为什么 CURLFetcher必须出现两次才行呢,我觉得 > from net import net CURLFetcher > cf = CURLFetcher("http://www.sina.com.cn") > 才应该最正确明了的写法啊,那位大虾能给我解释一下呀。 > 这应该也是 java 的习惯,一个 class 对应一个文件,class 名和文件名相同。 -- http://codeplayer.blogspot.com/ -------------- next part -------------- An HTML attachment was scrubbed... URL: http://python.cn/pipermail/python-chinese/attachments/20070313/34a17005/attachment.html
2007年03月13日 星期二 17:16
¹þ¹þ¡£ÎÒÔÀ´Ò²ÎªÕâ¸öÔιýÒ»Õó×ÓÄØ¡£¡£¡£ºóÀ´²ÅÃ÷°×ÊÇÔõô»ØÊ¡£ ÏÖÔÚÖÕÓÚÕÒµ½¸úÎÒÒ»ÑùµÄÈËÁË¡£ -------------- 下一部分 -------------- Ò»¸öHTML¸½¼þ±»ÒƳý... URL: http://python.cn/pipermail/python-chinese/attachments/20070313/d4292065/attachment.htm
2007年03月13日 星期二 17:28
ÎÒûÓöµ½´óÎÊÌ⣬µ«ÊÇÒ²ÊDz»ÊÇÌرðÀí½âÕâÑùµÄÔÒò ÇëÄã½âÊÍһϰɣ¬ºÇºÇ£¬ÎÒѧϰѧϰ ----- Original Message ----- From: Í·Ì«ÔÎ To: python-chinese在lists.python.cn Sent: Tuesday, March 13, 2007 5:16 PM Subject: Re: [python-chinese]package module import ÈÃÎÒÓеãÔÎ ¹þ¹þ¡£ÎÒÔÀ´Ò²ÎªÕâ¸öÔιýÒ»Õó×ÓÄØ¡£¡£¡£ºóÀ´²ÅÃ÷°×ÊÇÔõô»ØÊ¡£ ÏÖÔÚÖÕÓÚÕÒµ½¸úÎÒÒ»ÑùµÄÈËÁË¡£ ------------------------------------------------------------------------------ _______________________________________________ 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/20070313/37d81e35/attachment.htm
2007年03月13日 星期二 21:25
ÔÚ07-3-13£¬YySwing.Ñî <yang在pyboo.com> дµÀ£º > > ÎÒûÓöµ½´óÎÊÌ⣬µ«ÊÇÒ²ÊDz»ÊÇÌرðÀí½âÕâÑùµÄÔÒò > ÇëÄã½âÊÍһϰɣ¬ºÇºÇ£¬ÎÒѧϰѧϰ > - package1 - package2 - package4 - ...... - module2 - function1 - function2 - class2 - class3 - module3 - .... - package3 - ... - module1 - class4 - class5 - function3 - function4 - class1 ½á¹¹¾ÍÊÇÕâÑùµÄ¡£ Èç¹ûÎÒҪʹÓÃclass3 ¾Í from package1.package2 import module2 obj = module2.class3() »òÕß from package2.package2.module2 import class3 obj = class3() Èç¹ûmoduleµÄÃû×ÖºÍclassµÄÃû×ÖÏàͬ£¬¾ÍÈÝÒ׸ã»ì¡£¾Í»á³öÏÖÂ¥Ö÷µÄÎÊÌâ¡£ -------------- 下一部分 -------------- Ò»¸öHTML¸½¼þ±»ÒƳý... URL: http://python.cn/pipermail/python-chinese/attachments/20070313/43e0d192/attachment.html
2007年03月14日 星期三 09:07
net.CURLFetcherÊÇÒ»¸öÄ£¿é£¨Îļþ£©£¬ net.CURLFetcher.CURLFetcher²ÅÊÇÎļþÖеÄÒ»¸öÀà¡£ from net.CURLFetcher import CURLFetcherµ¼ÈëµÄÊÇÀ࣬ from net import CURLFetcherµ¼ÈëµÄÊÇÄ£¿é£¨Îļþ£©¡£ ËùÒÔÇ°Õß¿É×÷ΪÀàµ÷Ó㬺óÕßÖ»ÄÜ×÷Ϊģ¿é¶ÔÏóµ÷Ó㬵±È»Õâ¸öÄ£¿é¶ÔÏóÖаüº¬ÁËÒ»¸öÀ࣬ Äã¿ÉÒÔÓÃCURLFetcher.CURLFetcher°ÑËüÈ¡³öÀ´¡£ ÔÚ07-3-13£¬Pickerel Yee <pickerel在gmail.com> дµÀ£º > > ÎÒµÄÏîÄ¿ÊÇÕâÑùµÄ > /src > __init__.py > /src/net > src/net/__init__.py > /src/net/CURLFetcher.py > /src/test.py > > > CURLFetcherÊÇÒ»¸öclass > ÔÚtest.pyÖÐÈç¹ûÎÒÕâÑùд > from net.CURLFetcher import CURLFetcher > Ò»ÇÐOK£¬ÎÒ¿ÉÒÔÔÚºóÃæµÄ´úÂëÖÐʹÓÃCURLFetcherÀà > > ¿ÉÊÇÈç¹ûÎÒÕâÑùд from net import CURLFetcher > ÎҾͱØÐëÕâÑù²ÅÄÜʹÓÃÕâ¸öÀà > cf = CURLFetcher.CURLFetcher("http://www.sina.com.cn") > > Èç¹ûÎÒÖ±½Óд cf = CURLFetcher("http://www.sina.com.cn")£¬»áµÃµ½´íÎó£º > Traceback (most recent call last): > File "D:\dev\prj\newzab\newzab\core\test.py", line 3, in> CURLFetcher("http://www.sina.com.cn") > TypeError: 'module' object is not callable > ÎÒ°Ñsrc/net/__init__.pyɾÁËÒ²Ò»Ñù¡£ > > ÎÒÊÇpython³õѧÕߣ¬ÏÖÔÚ±»package moduleµÄÓ÷¨ÒѾÓеã¸ßÔÎÁË£¬ÎªÊ²Ã´ CURLFetcher±ØÐë³öÏÖÁ½´Î²ÅÐÐÄØ£¬ÎÒ¾õµÃ > from net import net CURLFetcher > cf = CURLFetcher("http://www.sina.com.cn") > ²ÅÓ¦¸Ã×îÕýÈ·Ã÷Á˵Äд·¨°¡£¬ÄÇλ´óϺÄܸøÎÒ½âÊÍÒ»ÏÂѽ¡£ > > > > > _______________________________________________ > 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/20070314/6716c7a1/attachment.html
2007年03月14日 星期三 09:24
呵呵,大家应该都明白了,模块和类的关系。 我还有一个问题,每个目录下的__init__.py是做什么用的呢? 在07-3-14,wentrue <guozhuwen在gmail.com> 写道: > > net.CURLFetcher是一个模块(文件), > net.CURLFetcher.CURLFetcher才是文件中的一个类。 > from net.CURLFetcher import CURLFetcher导入的是类, > from net import CURLFetcher导入的是模块(文件)。 > 所以前者可作为类调用,后者只能作为模块对象调用,当然这个模块对象中包含了一个类, > 你可以用CURLFetcher.CURLFetcher把它取出来 。 > > 在07-3-13,Pickerel Yee <pickerel在gmail.com> 写道: > > > > 我的项目是这样的 > > /src > > __init__.py > > /src/net > > src/net/__init__.py > > /src/net/CURLFetcher.py > > /src/test.py > > > > > > CURLFetcher是一个class > > 在test.py中如果我这样写 > > from net.CURLFetcher import CURLFetcher > > 一切OK,我可以在后面的代码中使用CURLFetcher类 > > > > 可是如果我这样写 from net import CURLFetcher > > 我就必须这样才能使用这个类 > > cf = CURLFetcher.CURLFetcher("http://www.sina.com.cn") > > > > 如果我直接写 cf = CURLFetcher("http://www.sina.com.cn"),会得到错误: > > Traceback (most recent call last): > > File "D:\dev\prj\newzab\newzab\core\test.py", line 3, in> > CURLFetcher("http://www.sina.com.cn") > > TypeError: 'module' object is not callable > > 我把src/net/__init__.py删了也一样。 > > > > 我是python初学者,现在被package module的用法已经有点高晕了,为什么 CURLFetcher必须出现两次才行呢,我觉得 > > from net import net CURLFetcher > > cf = CURLFetcher("http://www.sina.com.cn") > > 才应该最正确明了的写法啊,那位大虾能给我解释一下呀。 > > > > > > > > > > _______________________________________________ > > 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 > > > > > _______________________________________________ > 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 > -- Best Regards! Ace Strong ================================================== Nanjing University of Aeronautics and Astronautics. College of Civil Aviation Tao Cheng E-mail: acestrong在gmail.com ;acestrong在nuaa.edu.cn Tel: 86-025-84892273 ================================================== -------------- 下一部分 -------------- 一个HTML附件被移除... URL: http://python.cn/pipermail/python-chinese/attachments/20070314/0c231a9f/attachment.html
Zeuux © 2025
京ICP备05028076号