2006年04月09日 星期日 17:38
又回头改了一遍,发现原来是python脚本错误导致的,脚本错误导致无法导入模块 PyImport_ImportModule()返回0 但我现在改掉了却似乎还是不正确 我提供一个模块 API有wait函数 又有一个基类 class Tank: def __init__(self): self.x=1 def forward(): API.wait() def run(): self.forward() 然后一个类派生自Tank类 class myTank(Tank): def run(self): self.forward() 情况比上午好一点,能够生成myTank.pyc文件,但是没有生成Tank.pyc文件。 还不知道python是怎么支持多态的,学习下先。 //----------------------------------------------------------------------------- 是不是和c++一样,会自动生成默认构造函数? 好像构造有点问题,我调用了基类构造函数来构造派生类对象! ――不过不是脚本的问题啊 -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.exoweb.net/pipermail/python-chinese/attachments/20060409/8ecda71d/attachment.htm
2006年04月09日 星期日 18:31
果然是脚本的问题,而且我查看了一下关于继承的文档: The name BaseClassName must be defined in a scope containing the derived class definition. (我不知道这句话的确切含义,不是指在同一个模块中吗?)In place of a base class name, other arbitrary expressions are also allowed. This can be useful, for example, when the base class is defined in another module: *class DerivedClassName(modname.BaseClassName):* ** 前面还需要指定模块名称,现在基本能够运行了 不过如果用户编写的脚本错误,我的程序就死掉,似乎很不恰当啊 *不知有没有办法在运行时进行python脚本的正确性检查?* 还请各位高手指点一二 -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.exoweb.net/pipermail/python-chinese/attachments/20060409/a6f9f319/attachment.html
2006年04月09日 星期日 22:24
well, 越来越深入了,虽然没有看懂你的东西,呵呵尤其是这个: [Application ] [createTank ]---| 创建一个子类对象,并创建线程运行该子类的run函数。 | | [tank ] | [API ] 我的程序提供一些函数以中断线程 ---------- | ------ [forward ]---------|---------------[wait] forward方法会调用 [__init__] | [wake] ^ | | | | | [mytank(tank)]--| [ run ] run函数会调用tank的forward方法, 用户从我的tank类继承,编写新tank子类的脚本 实在是看不太清楚:) 如果Python脚本文件有错,Python执行过程中会设置异常,也许可以拦截异常,不过我对异常机制的实现好像有些遗忘了,呵呵,这就不能给你什么建议了,如果你不急,我过几天帮你看看吧 :) 还有,不知道通过判断Python C API的返回值能不能解决你的问题? 呵呵,你这个东西看上去蛮有趣的,是不是类似Java的那个什么什么坦克大战的咚咚? On 4/9/06, 吴俊玉 <wujunyu at gmail.com> wrote: > > 果然是脚本的问题,而且我查看了一下关于继承的文档: > > The name BaseClassName must be defined in a scope containing the derived > class definition. (我不知道这句话的确切含义,不是指在同一个模块中吗?)In place of a base class > name, other arbitrary expressions are also allowed. This can be useful, for > example, when the base class is defined in another module: > > *class DerivedClassName(modname.BaseClassName):* > > ** > > 前面还需要指定模块名称,现在基本能够运行了 > > 不过如果用户编写的脚本错误,我的程序就死掉,似乎很不恰当啊 > > > > *不知有没有办法在运行时进行python脚本的正确性检查?* > > 还请各位高手指点一二 > > _______________________________________________ > 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 > > -- Robert Python源码剖析――http://blog.donews.com/lemur/ -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.exoweb.net/pipermail/python-chinese/attachments/20060409/545a42d7/attachment.htm
2006年04月09日 星期日 22:31
晕,名字怎么变了? On 4/9/06, Balabalame balabalame <search.pythoner at gmail.com> wrote: > > well, 越来越深入了,虽然没有看懂你的东西,呵呵尤其是这个: > > [Application ] > [createTank ]---| 创建一个子类对象,并创建线程运行该子类的run函数。 > | > | > [tank ] | [API ] 我的程序提供一些函数以中断线程 > ---------- | ------ > [forward ]---------|---------------[wait] forward方法会调用 > [__init__] | [wake] > ^ | > | | > | | > [mytank(tank)]--| > [ run ] run函数会调用tank的forward方法, > 用户从我的tank类继承,编写新tank子类的脚本 > 实在是看不太清楚:) > > 如果Python脚本文件有错,Python执行过程中会设置异常,也许可以拦截异常,不过我对异常机制的实现好像有些遗忘了,呵呵,这就不能给你什么建议了,如果你不急,我过几天帮你看看吧 > :) > 还有,不知道通过判断Python C API的返回值能不能解决你的问题? > > 呵呵,你这个东西看上去蛮有趣的,是不是类似Java的那个什么什么坦克大战的咚咚? > > On 4/9/06, 吴俊玉 <wujunyu at gmail.com> wrote: > > > 果然是脚本的问题,而且我查看了一下关于继承的文档: > > The name BaseClassName must be defined in a scope containing the derived > class definition. (我不知道这句话的确切含义,不是指在同一个模块中吗?)In place of a base class > name, other arbitrary expressions are also allowed. This can be useful, for > example, when the base class is defined in another module: > > *class DerivedClassName(modname.BaseClassName):* > > ** > > 前面还需要指定模块名称,现在基本能够运行了 > > 不过如果用户编写的脚本错误,我的程序就死掉,似乎很不恰当啊 > > > > *不知有没有办法在运行时进行python脚本的正确性检查?* > > 还请各位高手指点一二 > > _______________________________________________ > > 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 > > > > > -- > > Robert > Python源码剖析――http://blog.donews.com/lemur/ > -- Robert Python源码剖析――http://blog.donews.com/lemur/ -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.exoweb.net/pipermail/python-chinese/attachments/20060409/3278cb5c/attachment.html
2006年04月09日 星期日 22:32
天哪,我是Robert...... On 4/9/06, Balabalame balabalame <search.pythoner at gmail.com> wrote: > > 晕,名字怎么变了? > > > On 4/9/06, Balabalame balabalame <search.pythoner at gmail.com> wrote: > > > > well, 越来越深入了,虽然没有看懂你的东西,呵呵尤其是这个: > > > > [Application ] > > [createTank ]---| 创建一个子类对象,并创建线程运行该子类的run函数。 > > | > > | > > [tank ] | [API ] 我的程序提供一些函数以中断线程 > > ---------- | ------ > > [forward ]---------|---------------[wait] forward方法会调用 > > [__init__] | [wake] > > ^ | > > | | > > | | > > [mytank(tank)]--| > > [ run ] run函数会调用tank的forward方法, > > 用户从我的tank类继承,编写新tank子类的脚本 > > 实在是看不太清楚:) > > > > 如果Python脚本文件有错,Python执行过程中会设置异常,也许可以拦截异常,不过我对异常机制的实现好像有些遗忘了,呵呵,这就不能给你什么建议了,如果你不急,我过几天帮你看看吧 > > :) > > 还有,不知道通过判断Python C API的返回值能不能解决你的问题? > > > > 呵呵,你这个东西看上去蛮有趣的,是不是类似Java的那个什么什么坦克大战的咚咚? > > > > On 4/9/06, 吴俊玉 < wujunyu at gmail.com> wrote: > > > > > 果然是脚本的问题,而且我查看了一下关于继承的文档: > > > > The name BaseClassName must be defined in a scope containing the derived > > class definition. (我不知道这句话的确切含义,不是指在同一个模块中吗?)In place of a base class > > name, other arbitrary expressions are also allowed. This can be useful, for > > example, when the base class is defined in another module: > > > > *class DerivedClassName(modname.BaseClassName):* > > > > ** > > > > 前面还需要指定模块名称,现在基本能够运行了 > > > > 不过如果用户编写的脚本错误,我的程序就死掉,似乎很不恰当啊 > > > > > > > > *不知有没有办法在运行时进行python脚本的正确性检查?* > > > > 还请各位高手指点一二 > > > > _______________________________________________ > > > > 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 > > > > > > > > > > -- > > > > Robert > > Python源码剖析――http://blog.donews.com/lemur/ > > > > > > -- > Robert > Python源码剖析――http://blog.donews.com/lemur/ > -- Robert Python源码剖析――http://blog.donews.com/lemur/ -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.exoweb.net/pipermail/python-chinese/attachments/20060409/9a20ff5d/attachment.htm
2006年04月10日 星期一 08:37
模仿IBM的RoboCode,当然,简单的模仿 时间比较急,不过如果搞不定,就先不在我得程序里面实现了 谢谢你一路帮我搞定那么多问题! -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.exoweb.net/pipermail/python-chinese/attachments/20060410/5bc09967/attachment.html
2006年04月10日 星期一 09:22
你可以先预编译一下,看看编译结果 在06-4-9,吴俊玉 <wujunyu at gmail.com> 写道: > > 果然是脚本的问题,而且我查看了一下关于继承的文档: > > The name BaseClassName must be defined in a scope containing the derived > class definition. (我不知道这句话的确切含义,不是指在同一个模块中吗?)In place of a base class > name, other arbitrary expressions are also allowed. This can be useful, for > example, when the base class is defined in another module: > > *class DerivedClassName(modname.BaseClassName):* > > ** > > 前面还需要指定模块名称,现在基本能够运行了 > > 不过如果用户编写的脚本错误,我的程序就死掉,似乎很不恰当啊 > > > > *不知有没有办法在运行时进行python脚本的正确性检查?* > > 还请各位高手指点一二 > > _______________________________________________ > 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 > > -- My Blog >> http://leejd.cndev.org My QQ >> 9847243 -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.exoweb.net/pipermail/python-chinese/attachments/20060410/1531eccc/attachment.html
2006年04月13日 星期四 08:55
但事实上我根本找不到预编译的方法,所以放弃了,而且时间不多,先不管吧, 先把主干搞定 现在有个问题是如何在多线程下使用python解释器 一个方法是使用锁 另一个方法是创建子解释器 直觉告诉我第一种方法比较适合我的设计,所以没看第二种方案,不了解 但使用第一种方案遇到了一个设计的问题: 我的线程是用c语言创建的,每个线程都会调用一些python函数,而这些python函数都是需要调用c函数阻塞自身的――这一点已经实现,问题是我每次调用python函数前要获得锁,完了要释放锁。 c程序中的阻塞子函数这部分怎么处理。 我得在阻塞以后释放锁,而*这系统是不会自动处理的把?* ** 还请高手指点迷津 -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.exoweb.net/pipermail/python-chinese/attachments/20060413/4dc29158/attachment.html
2006年04月13日 星期四 09:15
呵呵,这种主题还从来没接触过,不过一起来讨论,尝试吧:) 有一些问题: 1、所谓的"Python函数",是指Python的C API,还是你自己用Python的def定义的函数? 2、所谓的"锁",是什么? 3、我对问题还是不太清晰,希望能举个例子,比如f调用g啊,g需要调用k啊什么的,这样描述比较没有二义性 On 4/13/06, 吴俊玉 <wujunyu at gmail.com> wrote: > > 但事实上我根本找不到预编译的方法,所以放弃了,而且时间不多,先不管吧, > 先把主干搞定 > > 现在有个问题是如何在多线程下使用python解释器 > 一个方法是使用锁 > 另一个方法是创建子解释器 > > 直觉告诉我第一种方法比较适合我的设计,所以没看第二种方案,不了解 > > 但使用第一种方案遇到了一个设计的问题: > > 我的线程是用c语言创建的,每个线程都会调用一些python函数,而这些python函数都是需要调用c函数阻塞自身的――这一点已经实现,问题是我每次调用python函数前要获得锁,完了要释放锁。 > c程序中的阻塞子函数这部分怎么处理。 > 我得在阻塞以后释放锁,而*这系统是不会自动处理的把?* > ** > 还请高手指点迷津 > > > _______________________________________________ > 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 > > -- Robert Python源码剖析――http://blog.donews.com/lemur/ -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.exoweb.net/pipermail/python-chinese/attachments/20060413/ac4301de/attachment-0001.htm
2006年04月13日 星期四 09:40
On 4/12/06, 吴俊玉 <wujunyu at gmail.com> wrote: > > 但事实上我根本找不到预编译的方法,所以放弃了,而且时间不多,先不管吧, > 先把主干搞定 > > 现在有个问题是如何在多线程下使用python解释器 > 一个方法是使用锁 > 另一个方法是创建子解释器 > > 直觉告诉我第一种方法比较适合我的设计,所以没看第二种方案,不了解 > > 但使用第一种方案遇到了一个设计的问题: > 我的线程是用c语言创建的,每个线程都会调用一些python函数,而这些python函数都是需要调用c函数阻塞自身的——这一点已经实现,问题是我每次调用python函数前要获得锁,完了要释放锁。 > c程序中的阻塞子函数这部分怎么处理。 > 我得在阻塞以后释放锁,而这系统是不会自动处理的把? > C 部分的确不行,Python 方面的可以自动处理, 在使用OpenLDAP 的C 接口时就有这类问题,发现了N多内存泄漏问题, 所以,要很好的结合C运用Pytohn,关键问题是C的素质………… > 还请高手指点迷津 > > _______________________________________________ > 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 > > -- """Time is unimportant, only life important! blogging : http://blog.zoomquiet.org/pyblosxom/ wiki enter: http://wiki.woodpecker.org.cn/moin/ZoomQuiet in douban: http://www.douban.com/people/zoomq/ """
Zeuux © 2025
京ICP备05028076号