2005年04月08日 星期五 09:37
----- 原文 ----- From: Bruce Who To: python-chinese at lists.python.cn Subject: Re: [python-chinese] 请问各位,如何调试python程序 Sent: Fri Apr 08 09:24:21 CST 2005 > lifr: > > 可以用Komodo,wingIDE或pythonwin. > > ======= 2005-04-08 09:03:11 lifr wrote: ======= > > >目前我没有什么好的调试工具。 > >由于一遍程序比较小,调试的机会也较小。但如果实在需要调试,我就写打印语 > >句。 > >可是,print并不是处处有用,所以,我尝试了IDLE的调试,实在不敢恭维(我用 > >2.4 ). > > > >那么各位是如何调试程序的呢?有没有好的方法或者工具推荐? > > > >谢谢 > >_______________________________________________ > >python-chinese list > >python-chinese at lists.python.cn > >http://python.cn/mailman/listinfo/python-chinese > > > > = = = = = = = = = = = = = = = = = = = = > > > Bruce Who > whoonline at msn.com > 2005-04-08 > 写个脚本 然后调
2005年04月08日 星期五 10:09
调试的最高境界是UnitTest。哈哈。
2005年04月08日 星期五 10:18
是也乎!! Python 不是强数据结构语言!是脚本语言! 快速开发中,关注的是逻辑实现, 所以,不会有C哪样的内存追查debug 行为, print 和 logging 的综合使用足矣!!! 好工具初始好设计!! 如果一步一步,清晰的,安全的,快捷的接近你的目标, 根本不用调试的!!! 推荐 Leo + Command 窗口!! 简直是在快乐的编程!而且随时可以自由的重构! On Apr 8, 2005 9:37 AM, a512225508 at sohu.com <a512225508 at sohu.com> wrote: > > ----- 原文 ----- > From: Bruce Who > To: python-chinese at lists.python.cn > Subject: Re: [python-chinese] 请问各位,如何调试python程序 > Sent: Fri Apr 08 09:24:21 CST 2005 > > > lifr: > > > > 可以用Komodo,wingIDE或pythonwin. > > > > ======= 2005-04-08 09:03:11 lifr wrote: ======= > > > > >目前我没有什么好的调试工具。 > > >由于一遍程序比较小,调试的机会也较小。但如果实在需要调试,我就写打印语 > > >句。 > > >可是,print并不是处处有用,所以,我尝试了IDLE的调试,实在不敢恭维(我用 > > >2.4 ). > > > > > >那么各位是如何调试程序的呢?有没有好的方法或者工具推荐? > > > > > >谢谢 > > >_______________________________________________ > > >python-chinese list > > >python-chinese at lists.python.cn > > >http://python.cn/mailman/listinfo/python-chinese > > > > > > > = = = = = = = = = = = = = = = = = = = = > > > > > > Bruce Who > > whoonline at msn.com > > 2005-04-08 > > > 写个脚本 然后调 > _______________________________________________ > python-chinese list > python-chinese at lists.python.cn > http://python.cn/mailman/listinfo/python-chinese > -- [Time is unimportant, only life important!]
2005年04月08日 星期五 11:05
On Apr 8, 2005 10:09 AM, alang yin <alang.yl at gmail.com> wrote: > > 调试的最高境界是UnitTest。哈哈。 > unit test也是要debug的 -- Qiangning Hong Get Firefox! < http://www.spreadfirefox.com/?q=affiliates&id=67907&t=1> -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.exoweb.net/pipermail/python-chinese/attachments/20050408/d90e36a5/attachment.html
2005年04月08日 星期五 15:53
终于调试出来了,用了Pythonwin(为什么,最终还是要用我最不想用的*win*). 问题是这样开始的: 我发现我的一个xml到object的转换程序转换出来的结果总是不正确,具体是一个 list的对象多了(一些本不应该在这个list里面出现的object也在这个lit里面出 现) 这个转换程序由于有交叉的递归调用,所以特别难调试,我用过print statemetn,pdb,idle,pythonwin。 折腾了几乎一天,刚才终于发现了“罪魁祸首”,那就是python compiler 的某种 优化措施"搞的鬼" 1 如果你的某个class的__init__的某个缺省参数是一个list,且用[]赋初值,那 么很可能会出现每一个使用了缺省参数初始化的object都“共享”了同一个list. 2 同样的情况出现在递归调用的函数上。 3 同样的情况也出现在map上,也就是缺省参数是map 这绝对不是你想要的!!! 我给出一个例子: =============================exp1 def loop(i, l=[]): if i<=0: return print id(l) loop(i-1) loop(4) >>>>>>>output>>>>>>>>>> 19538688 19538688 19538688 19538688 =============================exp2 def loop(i): if i<=0: return l = [] print id(l) loop(i-1) loop(4) >>>>>>>output>>>>>>>>>> 19538688 19538288 19538808 19538608 我不知道这是不是一个 known-issue,反正把我是害苦了,写出来让不知道的朋友 不要在犯这样的错。 我的解决办法是用这样的表达式: def __init__(self, argList=None): self.myList = argList or []
2005年04月08日 星期五 16:35
这个问题早就有了。只不过不同的人注意力不同罢了。 On Apr 8, 2005 3:53 PM, lifr <lifr_sh at yeah.net> wrote: > 终于调试出来了,用了Pythonwin(为什么,最终还是要用我最不想用的*win*). > 问题是这样开始的: > 我发现我的一个xml到object的转换程序转换出来的结果总是不正确,具体是一个 > list的对象多了(一些本不应该在这个list里面出现的object也在这个lit里面出 > 现) > 这个转换程序由于有交叉的递归调用,所以特别难调试,我用过print > statemetn,pdb,idle,pythonwin。 > > 折腾了几乎一天,刚才终于发现了"罪魁祸首",那就是python compiler 的某种 > 优化措施"搞的鬼" > 1 如果你的某个class的__init__的某个缺省参数是一个list,且用[]赋初值,那 > 么很可能会出现每一个使用了缺省参数初始化的object都"共享"了同一个list. > 2 同样的情况出现在递归调用的函数上。 > 3 同样的情况也出现在map上,也就是缺省参数是map > > 这绝对不是你想要的!!! > > 我给出一个例子: > =============================exp1 > def loop(i, l=[]): > if i<=0: return > print id(l) > loop(i-1) > > loop(4) > >>>>>>>output>>>>>>>>>> > 19538688 > 19538688 > 19538688 > 19538688 > =============================exp2 > def loop(i): > if i<=0: return > l = [] > print id(l) > loop(i-1) > > loop(4) > >>>>>>>output>>>>>>>>>> > 19538688 > 19538288 > 19538808 > 19538608 > > 我不知道这是不是一个 known-issue,反正把我是害苦了,写出来让不知道的朋友 > 不要在犯这样的错。 > 我的解决办法是用这样的表达式: > def __init__(self, argList=None): > self.myList = argList or [] > > _______________________________________________ > python-chinese list > python-chinese at lists.python.cn > http://python.cn/mailman/listinfo/python-chinese > > > -- I like python! My Donews Blog: http://www.donews.net/limodou My Sina Blog: http://blog.sina.com.cn/blog/1148608914 New Google Maillist: http://groups-beta.google.com/group/python-cn
2005年04月08日 星期五 16:42
On Apr 8, 2005 3:53 PM, lifr <lifr_sh at yeah.net> wrote: > > 折腾了几乎一天,刚才终于发现了"罪魁祸首",那就是python compiler 的某种 > 优化措施"搞的鬼" > 1 如果你的某个class的__init__的某个缺省参数是一个list,且用[]赋初值,那 > 么很可能会出现每一个使用了缺省参数初始化的object都"共享"了同一个list. > 2 同样的情况出现在递归调用的函数上。 > 3 同样的情况也出现在map上,也就是缺省参数是map [snip] 我不知道这是不是一个 known-issue,反正把我是害苦了,写出来让不知道的朋友 > 不要在犯这样的错。 这是一个很著名的陷阱。原因是缺省参数是在编译时就产生了的,而不是调用时临时创建。每次用缺省参数调用时所引用的是同一个对象,在该对象是immutable时反正都无所谓,但在是mutable object时就会出现这种情况。 这个特性常常用来作为实现类似C中static变量的trick。 我的解决办法是用这样的表达式: > def __init__(self, argList=None): > self.myList = argList or [] > 这是正解。 -- Qiangning Hong Get Firefox! < http://www.spreadfirefox.com/?q=affiliates&id=67907&t=1> -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.exoweb.net/pipermail/python-chinese/attachments/20050408/936b1dc7/attachment.html
2005年04月09日 星期六 14:38
what is Leo, where can I download it? Thanks ----- Original Message ----- From: "Zoom Quiet" <zoom.quiet at gmail.com> To: <python-chinese at lists.python.cn>; "Python.cn at google" <python-cn at googlegroups.com> Sent: Friday, April 08, 2005 10:18 AM Subject: [python-chinese] Re: Re: [python-chine se] 请问各位,如何调试python 程序 是也乎!! Python 不是强数据结构语言!是脚本语言! 快速开发中,关注的是逻辑实现, 所以,不会有C哪样的内存追查debug 行为, print 和 logging 的综合使用足矣!!! 好工具初始好设计!! 如果一步一步,清晰的,安全的,快捷的接近你的目标, 根本不用调试的!!! 推荐 Leo + Command 窗口!! 简直是在快乐的编程!而且随时可以自由的重构! On Apr 8, 2005 9:37 AM, a512225508 at sohu.com <a512225508 at sohu.com> wrote: > > ----- 原文 ----- > From: Bruce Who > To: python-chinese at lists.python.cn > Subject: Re: [python-chinese] 请问各位,如何调试python程序 > Sent: Fri Apr 08 09:24:21 CST 2005 > > > lifr: > > > > 可以用Komodo,wingIDE或pythonwin. > > > > ======= 2005-04-08 09:03:11 lifr wrote: ======= > > > > >目前我没有什么好的调试工具。 > > >由于一遍程序比较小,调试的机会也较小。但如果实在需要调试,我就写打印语 > > >句。 > > >可是,print并不是处处有用,所以,我尝试了IDLE的调试,实在不敢恭维(我用 > > >2.4 ). > > > > > >那么各位是如何调试程序的呢?有没有好的方法或者工具推荐? > > > > > >谢谢 > > >_______________________________________________ > > >python-chinese list > > >python-chinese at lists.python.cn > > >http://python.cn/mailman/listinfo/python-chinese > > > > > > > = = = = = = = = = = = = = = = = = = = = > > > > > > Bruce Who > > whoonline at msn.com > > 2005-04-08 > > > 写个脚本 然后调 > _______________________________________________ > python-chinese list > python-chinese at lists.python.cn > http://python.cn/mailman/listinfo/python-chinese > -- [Time is unimportant, only life important!] _______________________________________________ python-chinese list python-chinese at lists.python.cn http://python.cn/mailman/listinfo/python-chinese
2005年04月09日 星期六 15:37
http://webpages.charter.net/edreamleo/front.html Leo is... - A *general data management environment*. Leo shows *user-created* relationships among any kind data: computer programs, web sites, etc. - An *outlining editor for programmers*. Leo embeds the noweb <http://www.eecs.harvard.edu/%7Enr/noweb/> and CWEB <http://www-cs-faculty.stanford.edu/%7Eknuth/cweb.html> markup languages in an outline context. - A flexible *browser* for projects, programs, classes or any other data. - A *project manager*. Leo provides multiple views of a project within a single outline. Leo naturally represents tasks that remain up-to-date. - *Portable*. Leo runs on Windows, Linux and MacOS X. - *100% pure * *Python* <http://www.python.org/>. Leo uses Tk/tcl<http://tcl.activestate.com/>to draw the screen. - *Fully scriptable using * *Python* <http://www.python.org/>. Leo's outline files are XML <http://www.w3.org/XML/> format. - *Open Software* <http://www.opensource.org/>, distributed under the Python License <http://www.python.org/doc/Copyright.html>. On Apr 9, 2005 2:38 PM, Chun Lin Zhang <zhangcl at smmail.cn> wrote: > > what is Leo, where can I download it? Thanks > > ----- Original Message ----- > From: "Zoom Quiet" <zoom.quiet at gmail.com> > To: <python-chinese at lists.python.cn>; "Python.cn at google" > <python-cn at googlegroups.com> > Sent: Friday, April 08, 2005 10:18 AM > Subject: [python-chinese] Re: Re: [python-chine se] 请问各位,如何调试python > 程序 > > 是也乎!! > Python 不是强数据结构语言!是脚本语言! > > 快速开发中,关注的是逻辑实现, > 所以,不会有C哪样的内存追查debug 行为, > > print 和 logging 的综合使用足矣!!! > > 好工具初始好设计!! > 如果一步一步,清晰的,安全的,快捷的接近你的目标, > 根本不用调试的!!! > > 推荐 Leo + Command 窗口!! > 简直是在快乐的编程!而且随时可以自由的重构! > > On Apr 8, 2005 9:37 AM, a512225508 at sohu.com <a512225508 at sohu.com> wrote: > > > > ----- 原文 ----- > > From: Bruce Who > > To: python-chinese at lists.python.cn > > Subject: Re: [python-chinese] 请问各位,如何调试python程序 > > Sent: Fri Apr 08 09:24:21 CST 2005 > > > > > lifr: > > > > > > 可以用Komodo,wingIDE或pythonwin. > > > > > > ======= 2005-04-08 09:03:11 lifr wrote: ======= > > > > > > >目前我没有什么好的调试工具。 > > > >由于一遍程序比较小,调试的机会也较小。但如果实在需要调试,我就写打印语 > > > >句。 > > > >可是,print并不是处处有用,所以,我尝试了IDLE的调试,实在不敢恭维(我用 > > > >2.4 ). > > > > > > > >那么各位是如何调试程序的呢?有没有好的方法或者工具推荐? > > > > > > > >谢谢 > > > >_______________________________________________ > > > >python-chinese list > > > >python-chinese at lists.python.cn > > > >http://python.cn/mailman/listinfo/python-chinese > > > > > > > > > > = = = = = = = = = = = = = = = = = = = = > > > > > > > > > Bruce Who > > > whoonline at msn.com > > > 2005-04-08 > > > > > 写个脚本 然后调 > > _______________________________________________ > > python-chinese list > > python-chinese at lists.python.cn > > http://python.cn/mailman/listinfo/python-chinese > > > > -- > [Time is unimportant, only life important!] > _______________________________________________ > python-chinese list > python-chinese at lists.python.cn > http://python.cn/mailman/listinfo/python-chinese > > _______________________________________________ > python-chinese list > python-chinese at lists.python.cn > http://python.cn/mailman/listinfo/python-chinese > -- Qiangning Hong Get Firefox! < http://www.spreadfirefox.com/?q=affiliates&id=67907&t=1> -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.exoweb.net/pipermail/python-chinese/attachments/20050409/97832b52/attachment.html
2005年04月09日 星期六 16:25
是也乎! 现在我简直爱死 Leo 了!! 啄木鸟中有一些介绍,我会逐步将有关 Leo 的最佳体验汇报出来的 Leo 环境简介: http://wiki.woodpecker.org.cn/moin/LeoEnvironment 文学编程阐述: http://wiki.woodpecker.org.cn/moin/LiterateProgramming 利用Leo 快速组织代码,解决问题: http://wiki.woodpecker.org.cn/moin/CvsWeeklyStat On Apr 9, 2005 3:37 PM, Qiangning Hong <hongqn at gmail.com> wrote: > http://webpages.charter.net/edreamleo/front.html > > > Leo is... > > A general data management environment. > Leo shows user-created relationships among any kind data: > computer programs, web sites, etc. > An outlining editor for programmers. > Leo embeds the noweb and CWEB markup languages in an outline context. > A flexible browser for projects, programs, classes or any other data. > A project manager. > Leo provides multiple views of a project within a single outline. > Leo naturally represents tasks that remain up-to-date. > Portable. Leo runs on Windows, Linux and MacOS X. > 100% pure Python. Leo uses Tk/tcl to draw the screen. > Fully scriptable using Python. Leo's outline files are XML format. > Open Software, distributed under the Python License. > > > On Apr 9, 2005 2:38 PM, Chun Lin Zhang <zhangcl at smmail.cn> wrote: > > what is Leo, where can I download it? Thanks > > > > ----- Original Message ----- > > From: "Zoom Quiet" <zoom.quiet at gmail.com> > > To: <python-chinese at lists.python.cn>; "Python.cn at google" > > <python-cn at googlegroups.com> > > Sent: Friday, April 08, 2005 10:18 AM > > Subject: [python-chinese] Re: Re: [python-chine se] 请问各位,如何调试python > > 程序 > > > > 是也乎!! > > Python 不是强数据结构语言!是脚本语言! > > > > 快速开发中,关注的是逻辑实现, > > 所以,不会有C哪样的内存追查debug 行为, > > > > print 和 logging 的综合使用足矣!!! > > > > 好工具初始好设计!! > > 如果一步一步,清晰的,安全的,快捷的接近你的目标, > > 根本不用调试的!!! > > > > 推荐 Leo + Command 窗口!! > > 简直是在快乐的编程!而且随时可以自由的重构! > > > > On Apr 8, 2005 9:37 AM, a512225508 at sohu.com <a512225508 at sohu.com> wrote: > > > > > > ----- 原文 ----- > > > From: Bruce Who > > > To: python-chinese at lists.python.cn > > > Subject: Re: [python-chinese] 请问各位,如何调试python程序 > > > Sent: Fri Apr 08 09:24:21 CST 2005 > > > > > > > lifr: > > > > > > > > 可以用Komodo,wingIDE或pythonwin. > > > > > > > > ======= 2005-04-08 09:03:11 lifr wrote: ======= > > > > > > > > >目前我没有什么好的调试工具。 > > > > >由于一遍程序比较小,调试的机会也较小。但如果实在需要调试,我就写打印语 > > > > >句。 > > > > >可是,print并不是处处有用,所以,我尝试了IDLE的调试,实在不敢恭维(我用 > > > > >2.4 ). > > > > > > > > > >那么各位是如何调试程序的呢?有没有好的方法或者工具推荐? > > > > > > > > > >谢谢 > > > > >_______________________________________________ > > > > >python-chinese list > > > > >python-chinese at lists.python.cn > > > > >http://python.cn/mailman/listinfo/python-chinese > > > > > > > > > > > > > = = = = = = = = = = = = = = = = = = = = > > > > > > > > > > > > Bruce Who > > > > whoonline at msn.com > > > > 2005-04-08 > > > > > > > 写个脚本 然后调 > > > _______________________________________________ > > > python-chinese list > > > python-chinese at lists.python.cn > > > http://python.cn/mailman/listinfo/python-chinese > > > > > > > -- > > [Time is unimportant, only life important!] > > _______________________________________________ > > python-chinese list > > python-chinese at lists.python.cn > > http://python.cn/mailman/listinfo/python-chinese > > > > _______________________________________________ > > python-chinese list > > python-chinese at lists.python.cn > > http://python.cn/mailman/listinfo/python-chinese > > > > > > -- > Qiangning Hong > Get Firefox! > <http://www.spreadfirefox.com/?q=affiliates&id=67907&t=1> > > _______________________________________________ > python-chinese list > python-chinese at lists.python.cn > http://python.cn/mailman/listinfo/python-chinese > > > -- [Time is unimportant, only life important!]
Zeuux © 2025
京ICP备05028076号