Python论坛  - 讨论区

标题:[python-chinese] [求助]在Python中如何动态创建一个函数

2007年01月13日 星期六 21:04

Mingzhe Huang archerzz在gmail.com
星期六 一月 13 21:04:35 HKT 2007

各位好!

我想请教一下,在Python中除了用lamda,还有什么方法能动态创建一个函数。

比如类似以下情形:
#类A含有方法show
a = A()
a.show = "XXXXX" #用某种方法创建
a.show()


-- 
Best Regards,

Archer

Ming Zhe Huang
-------------- 下一部分 --------------
一个HTML附件被移除...
URL: http://python.cn/pipermail/python-chinese/attachments/20070113/97c39f9f/attachment.html 

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

2007年01月13日 星期六 21:18

tocer tocer.deng在gmail.com
星期六 一月 13 21:18:41 HKT 2007

exec 'def foo(): pass'
print type(foo)

Mingzhe Huang wrote::
> 各位好!
> 
> 我想请教一下,在Python中除了用lamda,还有什么方法能动态创建一个函数。
> 
> 比如类似以下情形:
> #类A含有方法show
> a = A()
> a.show = "XXXXX" #用某种方法创建
> a.show()
> 
> 
> 
> ------------------------------------------------------------------------
> 
> _______________________________________________
> 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

-- 
Vim 中文 Google 论坛 http://groups.google.com/group/Vim-cn

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

2007年01月13日 星期六 21:20

tocer tocer.deng在gmail.com
星期六 一月 13 21:20:38 HKT 2007

exec 'def foo(): pass'
print type(foo)

Mingzhe Huang wrote::
> 各位好!
> 
> 我想请教一下,在Python中除了用lamda,还有什么方法能动态创建一个函数。
> 
> 比如类似以下情形:
> #类A含有方法show
> a = A()
> a.show = "XXXXX" #用某种方法创建
> a.show()
> 

-- 
Vim 中文 Google 论坛 http://groups.google.com/group/Vim-cn

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

2007年01月13日 星期六 21:52

Mingzhe Huang archerzz在gmail.com
星期六 一月 13 21:52:13 HKT 2007

谢谢!可是如果定义的函数比较复杂,语句超过一行呢?

On 1/13/07, tocer <tocer.deng在gmail.com> wrote:
>
> exec 'def foo(): pass'
> print type(foo)
>
> Mingzhe Huang wrote::
> > 各位好!
> >
> > 我想请教一下,在Python中除了用lamda,还有什么方法能动态创建一个函数。
> >
> > 比如类似以下情形:
> > #类A含有方法show
> > a = A()
> > a.show = "XXXXX" #用某种方法创建
> > a.show()
> >
> >
> >
> > ------------------------------------------------------------------------
> >
> > _______________________________________________
> > 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
>
> --
> Vim 中文 Google 论坛 http://groups.google.com/group/Vim-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




-- 
Best Regards,

Archer

Ming Zhe Huang
-------------- 下一部分 --------------
一个HTML附件被移除...
URL: http://python.cn/pipermail/python-chinese/attachments/20070113/ddbba83b/attachment.html 

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

2007年01月13日 星期六 22:09

tocer tocer.deng在gmail.com
星期六 一月 13 22:09:25 HKT 2007

func = """
def foo():
   a = 'hello'
   print a
"""
exec func
foo()

Mingzhe Huang wrote::
> 谢谢!可是如果定义的函数比较复杂,语句超过一行呢?
> 
> On 1/13/07, tocer <tocer.deng在gmail.com> wrote:
>>
>> exec 'def foo(): pass'
>> print type(foo)
>>
>> Mingzhe Huang wrote::
>> > 各位好!
>> >
>> > 我想请教一下,在Python中除了用lamda,还有什么方法能动态创建一个函数。
>> >
>> > 比如类似以下情形:
>> > #类A含有方法show
>> > a = A()
>> > a.show = "XXXXX" #用某种方法创建
>> > a.show()
>> >
>> >
>> >
>> > 
>> ------------------------------------------------------------------------
>> >
>> > _______________________________________________
>> > 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
>>
>> -- 
>> Vim 中文 Google 论坛 http://groups.google.com/group/Vim-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

-- 
Vim 中文 Google 论坛 http://groups.google.com/group/Vim-cn

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

2007年01月13日 星期六 22:39

yi huang yi.codeplayer在gmail.com
星期六 一月 13 22:39:10 HKT 2007

On 1/13/07, tocer <tocer.deng at gmail.com> wrote:
>
> func = """
> def foo():
>    a = 'hello'
>    print a
> """
> exec func
> foo()
>
> Mingzhe Huang wrote::
> > 谢谢!可是如果定义的函数比较复杂,语句超过一行呢?
> >
> > On 1/13/07, tocer <tocer.deng at gmail.com> wrote:
> >>
> >> exec 'def foo(): pass'
> >> print type(foo)
> >>
> >> Mingzhe Huang wrote::
> >> > 各位好!
> >> >
> >> > 我想请教一下,在Python中除了用lamda,还有什么方法能动态创建一个函数。
> >> >
> >> > 比如类似以下情形:
> >> > #类A含有方法show
> >> > a = A()
> >> > a.show = "XXXXX" #用某种方法创建
> >> > a.show()
> >> >
> >> >
> >> >
> >> >
> >>
> ------------------------------------------------------------------------
> >> >
> >> > _______________________________________________
> >> > 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
> >>
> >> --
> >> Vim 中文 Google 论坛 http://groups.google.com/group/Vim-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
> >
> >
> >
> >
> >
> > ------------------------------------------------------------------------
> >
> > _______________________________________________
> > 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
>
> --
> Vim 中文 Google 论坛 http://groups.google.com/group/Vim-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


tocer 不要教坏小朋友 ;-) python 之所以限制 lambda 语法,就是因为不鼓励这种做法。

-- 
http://codeplayer.blogspot.com/
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://python.cn/pipermail/python-chinese/attachments/20070113/fae84eae/attachment-0001.htm 

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

2007年01月13日 星期六 23:17

Mingzhe Huang archerzz在gmail.com
星期六 一月 13 23:17:45 HKT 2007

呵呵,非常感谢!
其实只要那个格式字符串能正确包括函数定义的换行和缩进就可以了,是吧?

On 1/13/07, yi huang <yi.codeplayer在gmail.com> wrote:
>
> On 1/13/07, tocer <tocer.deng在gmail.com> wrote:
> >
> > func = """
> > def foo():
> >    a = 'hello'
> >    print a
> > """
> > exec func
> > foo()
> >
> > Mingzhe Huang wrote::
> > > 谢谢!可是如果定义的函数比较复杂,语句超过一行呢?
> > >
> > > On 1/13/07, tocer < tocer.deng在gmail.com> wrote:
> > >>
> > >> exec 'def foo(): pass'
> > >> print type(foo)
> > >>
> > >> Mingzhe Huang wrote::
> > >> > 各位好!
> > >> >
> > >> > 我想请教一下,在Python中除了用lamda,还有什么方法能动态创建一个函数。
> > >> >
> > >> > 比如类似以下情形:
> > >> > #类A含有方法show
> > >> > a = A()
> > >> > a.show = "XXXXX" #用某种方法创建
> > >> > a.show()
> > >> >
> > >> >
> > >> >
> > >> >
> > >>
> > ------------------------------------------------------------------------
> > >> >
> > >> > _______________________________________________
> > >> > 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
> > >>
> > >> --
> > >> Vim 中文 Google 论坛 http://groups.google.com/group/Vim-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
> >
> > --
> > Vim 中文 Google 论坛 http://groups.google.com/group/Vim-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
>
>
> tocer 不要教坏小朋友 ;-) python 之所以限制 lambda 语法,就是因为不鼓励这种做法。
>
> --
> http://codeplayer.blogspot.com/
> _______________________________________________
> 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,

Archer

Ming Zhe Huang
-------------- 下一部分 --------------
一个HTML附件被移除...
URL: http://python.cn/pipermail/python-chinese/attachments/20070113/5d64063a/attachment.html 

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

2007年01月14日 星期日 13:58

tocer tocer.deng在gmail.com
星期日 一月 14 13:58:14 HKT 2007

呵呵,也许有时候确实需要这种方式呢。我还真不知道这种方式有什么不好?

yi huang wrote::
> tocer 不要教坏小朋友 ;-) python 之所以限制 lambda 语法,就是因为不鼓励这 
> 种做法。
> 
> 
> ------------------------------------------------------------------------
> 
> _______________________________________________
> 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

-- 
Vim 中文 Google 论坛 http://groups.google.com/group/Vim-cn

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

2007年01月14日 星期日 14:10

tocer tocer.deng在gmail.com
星期日 一月 14 14:10:40 HKT 2007

是

Mingzhe Huang wrote::
> 呵呵,非常感谢!
> 其实只要那个格式字符串能正确包括函数定义的换行和缩进就可以了,是吧?
-- 
Vim 中文 Google 论坛 http://groups.google.com/group/Vim-cn

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

2007年01月14日 星期日 15:31

yi huang yi.codeplayer在gmail.com
星期日 一月 14 15:31:29 HKT 2007

On 1/14/07, tocer <tocer.deng at gmail.com> wrote:
>
> 呵呵,也许有时候确实需要这种方式呢。我还真不知道这种方式有什么不好?
>
> yi huang wrote::
> > tocer 不要教坏小朋友 ;-) python 之所以限制 lambda 语法,就是因为不鼓励这
> > 种做法。
> >
> >
> > ------------------------------------------------------------------------
> >
> > _______________________________________________
> > 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
>
> --
> Vim 中文 Google 论坛 http://groups.google.com/group/Vim-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


当然如果确实需要这种形式的话是可以,比如某一个函数是由用户输入的,那肯定只能 eval 。
但是其他使用 eval 的场景实在想不出来。
总之 eval 的坏处基本上和 c 里面的 define 一样。
我很想知道 huang mingzhe 兄的需求,我觉的肯定可以有更好的解决方案。

-- 
http://codeplayer.blogspot.com/
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://python.cn/pipermail/python-chinese/attachments/20070114/29befc7a/attachment.html 

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

2007年01月14日 星期日 17:25

Mingzhe Huang archerzz在gmail.com
星期日 一月 14 17:25:37 HKT 2007

我其实想写一个支持插件的引擎。这个引擎大致的原理和eclipse差不多,用户写一个xml配置文件告诉引擎一些元数据,然后引擎去读取用户编写的代码来运行。Java里有classloader机制,可以载入编译好的class文件。我在想,python里面应该也有类似动态载入代码的方法喽。我一开始想的就是lambda或者eval。不知道还会有其它的吗?

On 1/14/07, yi huang <yi.codeplayer在gmail.com> wrote:
>
> On 1/14/07, tocer <tocer.deng在gmail.com> wrote:
> >
> > 呵呵,也许有时候确实需要这种方式呢。我还真不知道这种方式有什么不好?
> >
> > yi huang wrote::
> > > tocer 不要教坏小朋友 ;-) python 之所以限制 lambda 语法,就是因为不鼓励这
> > > 种做法。
> > >
> > >
> > >
> > ------------------------------------------------------------------------
> > >
> > > _______________________________________________
> > > 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
> >
> > --
> > Vim 中文 Google 论坛 http://groups.google.com/group/Vim-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
>
>
> 当然如果确实需要这种形式的话是可以,比如某一个函数是由用户输入的,那肯定只能 eval 。
> 但是其他使用 eval 的场景实在想不出来。
> 总之 eval 的坏处基本上和 c 里面的 define 一样。
> 我很想知道 huang mingzhe 兄的需求,我觉的肯定可以有更好的解决方案。
>
> --
> http://codeplayer.blogspot.com/
> _______________________________________________
> 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,

Archer

Ming Zhe Huang
-------------- 下一部分 --------------
一个HTML附件被移除...
URL: http://python.cn/pipermail/python-chinese/attachments/20070114/cffa4a64/attachment.htm 

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

2007年01月14日 星期日 17:43

yi huang yi.codeplayer在gmail.com
星期日 一月 14 17:43:40 HKT 2007

On 1/14/07, Mingzhe Huang <archerzz at gmail.com> wrote:
>
>
> 我其实想写一个支持插件的引擎。这个引擎大致的原理和eclipse差不多,用户写一个xml配置文件告诉引擎一些元数据,然后引擎去读取用户编写的代码来运行。Java里有classloader机制,可以载入编译好的class文件。我在想,python里面应该也有类似动态载入代码的方法喽。我一开始想的就是lambda或者eval。不知道还会有其它的吗?
>

内置函数 __import__ ,可以先将插件所在目录加到 sys.path 中去。


-- 
http://codeplayer.blogspot.com/
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://python.cn/pipermail/python-chinese/attachments/20070114/3161ea51/attachment.html 

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

2007年01月14日 星期日 18:32

tocer tocer.deng在gmail.com
星期日 一月 14 18:32:51 HKT 2007

如果用的代码是 python 写的,直接 import 不就可以么?或者使用 mixin 方式处理插 
件,可以参考 Ulipad 代码。

Mingzhe Huang wrote::
> 我其实想写一个支持插件的引擎。这个引擎大致的原理和eclipse差不多,用户写 
> 一个xml配置文件告诉引擎一些元数据,然后引擎去读取用户编写的代码来运行。 
> Java里有classloader机制,可以载入编译好的class文件。我在想,python里面应 
> 该也有类似动态载入代码的方法喽。我一开始想的就是lambda或者eval。不知道还 
> 会有其它的吗?
> 
> On 1/14/07, yi huang <yi.codeplayer在gmail.com> wrote:
>>
>> On 1/14/07, tocer <tocer.deng在gmail.com> wrote:
>> >
>> > 呵呵,也许有时候确实需要这种方式呢。我还真不知道这种方式有什么不好?

-- 
Vim 中文 Google 论坛 http://groups.google.com/group/Vim-cn

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

2007年01月14日 星期日 23:21

Mingzhe Huang archerzz在gmail.com
星期日 一月 14 23:21:09 HKT 2007

但是import不是静态的关键字吗?我是希望能根据配置文件动态载入用户的代码。
比如这样:
pluginString = "UserClass"
import pluginString #这句话显然目前不行
ob = UserClass()

我的假设是引擎不清楚用户的代码,类似eclipse那样,完全是运行时载入的。Java有classloader,不知道python除了eval,还有别的什么吗?

On 1/14/07, tocer < tocer.deng在gmail.com> wrote:
>
> 如果用的代码是 python 写的,直接 import 不就可以么?或者使用 mixin 方式处理插
> 件,可以参考 Ulipad 代码。
>
> Mingzhe Huang wrote::
> > 我其实想写一个支持插件的引擎。这个引擎大致的原理和eclipse差不多,用户写
> > 一个xml配置文件告诉引擎一些元数据,然后引擎去读取用户编写的代码来运行。
> > Java里有classloader机制,可以载入编译好的class文件。我在想,python里面应
> > 该也有类似动态载入代码的方法喽。我一开始想的就是lambda或者eval。不知道还
> > 会有其它的吗?
> >
> > On 1/14/07, yi huang <yi.codeplayer在gmail.com> wrote:
> >>
> >> On 1/14/07, tocer < tocer.deng在gmail.com> wrote:
> >> >
> >> > 呵呵,也许有时候确实需要这种方式呢。我还真不知道这种方式有什么不好?
>
> --
> Vim 中文 Google 论坛 http://groups.google.com/group/Vim-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




-- 
Best Regards,

Archer

Ming Zhe Huang
-------------- 下一部分 --------------
一个HTML附件被移除...
URL: http://python.cn/pipermail/python-chinese/attachments/20070114/c70e572f/attachment.html 

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

2007年01月14日 星期日 23:25

刘鑫 march.liu在gmail.com
星期日 一月 14 23:25:18 HKT 2007

__import__º¯Êý
·ÅÐÄ£¬¾Í¶¯Ì¬ÄÜÁ¦¶øÑÔ£¬Python»¹ÊÇÍêÈ«¿ÉÒÔÐÅÈεģ¬ÄãÒªÊDz»ÏÓÂé·³£¬×Ô¼ºÆ´×°×Ö½ÚÂ붼¿ÉÒÔ¡£

2007/1/14, Mingzhe Huang <archerzz在gmail.com>:
>
> µ«ÊÇimport²»ÊǾ²Ì¬µÄ¹Ø¼ü×ÖÂð£¿ÎÒÊÇÏ£ÍûÄܸù¾ÝÅäÖÃÎļþ¶¯Ì¬ÔØÈëÓû§µÄ´úÂë¡£
> ±ÈÈçÕâÑù£º
> pluginString = "UserClass"
> import pluginString #Õâ¾ä»°ÏÔȻĿǰ²»ÐÐ
> ob = UserClass()
>
>
> ÎҵļÙÉèÊÇÒýÇæ²»Çå³þÓû§µÄ´úÂ룬ÀàËÆeclipseÄÇÑù£¬ÍêÈ«ÊÇÔËÐÐʱÔØÈëµÄ¡£JavaÓÐclassloader£¬²»ÖªµÀpython³ýÁËeval£¬»¹ÓбðµÄʲôÂð£¿
>
> On 1/14/07, tocer < tocer.deng在gmail.com> wrote:
> >
> > Èç¹ûÓõĴúÂëÊÇ python дµÄ£¬Ö±½Ó import ²»¾Í¿ÉÒÔô£¿»òÕßʹÓà mixin ·½Ê½´¦Àí²å
> > ¼þ£¬¿ÉÒԲο¼ Ulipad ´úÂë¡£
> >
> > Mingzhe Huang wrote::
> > > ÎÒÆäʵÏëдһ¸öÖ§³Ö²å¼þµÄÒýÇæ¡£Õâ¸öÒýÇæ´óÖµÄÔ­ÀíºÍeclipse²î²»¶à£¬Óû§Ð´
> > > Ò»¸öxmlÅäÖÃÎļþ¸æËßÒýÇæһЩԪÊý¾Ý£¬È»ºóÒýÇæÈ¥¶ÁÈ¡Óû§±àдµÄ´úÂëÀ´ÔËÐС£
> > > JavaÀïÓÐclassloader»úÖÆ£¬¿ÉÒÔÔØÈë±àÒëºÃµÄclassÎļþ¡£ÎÒÔÚÏ룬pythonÀïÃæÓ¦
> > > ¸ÃÒ²ÓÐÀàËƶ¯Ì¬ÔØÈë´úÂëµÄ·½·¨à¶¡£ÎÒÒ»¿ªÊ¼ÏëµÄ¾ÍÊÇlambda»òÕßeval¡£²»ÖªµÀ»¹
> > > »áÓÐÆäËüµÄÂð£¿
> > >
> > > On 1/14/07, yi huang <yi.codeplayer在gmail.com> wrote:
> > >>
> > >> On 1/14/07, tocer < tocer.deng在gmail.com> wrote:
> > >> >
> > >> > ºÇºÇ£¬Ò²ÐíÓÐʱºòȷʵÐèÒªÕâÖÖ·½Ê½ÄØ¡£ÎÒ»¹Õæ²»ÖªµÀÕâÖÖ·½Ê½ÓÐʲô²»ºÃ£¿
> >
> > --
> > Vim ÖÐÎÄ Google ÂÛ̳ http://groups.google.com/group/Vim-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
>
>
>
>
> --
> Best Regards,
>
> Archer
>
> Ming Zhe Huang
>
> _______________________________________________
> 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
>



-- 
Blog°á¼ÒÁË

ÁõöÎ
March.Liu
-------------- 下一部分 --------------
Ò»¸öHTML¸½¼þ±»ÒƳý...
URL: http://python.cn/pipermail/python-chinese/attachments/20070114/b63ffe46/attachment.htm 

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

2007年01月14日 星期日 23:50

Albert Lee hanzhupeng在gmail.com
星期日 一月 14 23:50:54 HKT 2007

Óà   compiler Ä£¿é¿´¿´£¬ ±ÈÖ±½Ó eval ºÃ£¬ÖÁÉÙ¿ÉÒÔÖªµÀ´íÎó¡£

ÔÚ07-1-14£¬ÁõöÎ <march.liu在gmail.com> дµÀ£º
>
> __import__º¯Êý
> ·ÅÐÄ£¬¾Í¶¯Ì¬ÄÜÁ¦¶øÑÔ£¬Python»¹ÊÇÍêÈ«¿ÉÒÔÐÅÈεģ¬ÄãÒªÊDz»ÏÓÂé·³£¬×Ô¼ºÆ´×°×Ö½ÚÂ붼¿ÉÒÔ¡£
>
> 2007/1/14, Mingzhe Huang <archerzz在gmail.com>:
> >
> > µ«ÊÇimport²»ÊǾ²Ì¬µÄ¹Ø¼ü×ÖÂð£¿ÎÒÊÇÏ£ÍûÄܸù¾ÝÅäÖÃÎļþ¶¯Ì¬ÔØÈëÓû§µÄ´úÂë¡£
> > ±ÈÈçÕâÑù£º
> > pluginString = "UserClass"
> > import pluginString #Õâ¾ä»°ÏÔȻĿǰ²»ÐÐ
> > ob = UserClass()
> >
> >
> > ÎҵļÙÉèÊÇÒýÇæ²»Çå³þÓû§µÄ´úÂ룬ÀàËÆeclipseÄÇÑù£¬ÍêÈ«ÊÇÔËÐÐʱÔØÈëµÄ¡£JavaÓÐclassloader£¬²»ÖªµÀpython³ýÁËeval£¬»¹ÓбðµÄʲôÂð£¿
> >
> > On 1/14/07, tocer < tocer.deng在gmail.com> wrote:
> > >
> > > Èç¹ûÓõĴúÂëÊÇ python дµÄ£¬Ö±½Ó import ²»¾Í¿ÉÒÔô£¿»òÕßʹÓà mixin ·½Ê½´¦Àí²å
> > > ¼þ£¬¿ÉÒԲο¼ Ulipad ´úÂë¡£
> > >
> > > Mingzhe Huang wrote::
> > > > ÎÒÆäʵÏëдһ¸öÖ§³Ö²å¼þµÄÒýÇæ¡£Õâ¸öÒýÇæ´óÖµÄÔ­ÀíºÍeclipse²î²»¶à£¬Óû§Ð´
> > > > Ò»¸öxmlÅäÖÃÎļþ¸æËßÒýÇæһЩԪÊý¾Ý£¬È»ºóÒýÇæÈ¥¶ÁÈ¡Óû§±àдµÄ´úÂëÀ´ÔËÐС£
> > > > JavaÀïÓÐclassloader»úÖÆ£¬¿ÉÒÔÔØÈë±àÒëºÃµÄclassÎļþ¡£ÎÒÔÚÏ룬pythonÀïÃæÓ¦
> > > > ¸ÃÒ²ÓÐÀàËƶ¯Ì¬ÔØÈë´úÂëµÄ·½·¨à¶¡£ÎÒÒ»¿ªÊ¼ÏëµÄ¾ÍÊÇlambda»òÕßeval¡£²»ÖªµÀ»¹
> > > > »áÓÐÆäËüµÄÂð£¿
> > > >
> > > > On 1/14/07, yi huang <yi.codeplayer在gmail.com> wrote:
> > > >>
> > > >> On 1/14/07, tocer < tocer.deng在gmail.com> wrote:
> > > >> >
> > > >> > ºÇºÇ£¬Ò²ÐíÓÐʱºòȷʵÐèÒªÕâÖÖ·½Ê½ÄØ¡£ÎÒ»¹Õæ²»ÖªµÀÕâÖÖ·½Ê½ÓÐʲô²»ºÃ£¿
> > >
> > > --
> > > Vim ÖÐÎÄ Google ÂÛ̳ http://groups.google.com/group/Vim-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
> >
> >
> >
> >
> > --
> > Best Regards,
> >
> > Archer
> >
> > Ming Zhe Huang
> >
> > _______________________________________________
> > 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
> >
>
>
>
> --
> Blog°á¼ÒÁË
>
> ÁõöÎ
> March.Liu
> _______________________________________________
> 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
>



-- 
http://hanzhupeng.googlepages.com/
-------------- 下一部分 --------------
Ò»¸öHTML¸½¼þ±»ÒƳý...
URL: http://python.cn/pipermail/python-chinese/attachments/20070114/42c8b1f6/attachment-0001.htm 

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

2007年01月15日 星期一 07:53

tocer tocer.deng在gmail.com
星期一 一月 15 07:53:30 HKT 2007

不知道这样行不行?

pluginString = """

def hello():
   return 'hello'
"""
print >> file('plugin.py', 'w'), pluginString
if os.paht.exists('plugin.py'):
   import plugin
   plugin.hello()


Mingzhe Huang wrote::
> 但是import不是静态的关键字吗?我是希望能根据配置文件动态载入用户的代码。
> 比如这样:
> pluginString = "UserClass"
> import pluginString #这句话显然目前不行
> ob = UserClass()
> 
> 我的假设是引擎不清楚用户的代码,类似eclipse那样,完全是运行时载入的。 
> Java有classloader,不知道python除了eval,还有别的什么吗?
> 
> On 1/14/07, tocer < tocer.deng在gmail.com> wrote:
>>
>> 如果用的代码是 python 写的,直接 import 不就可以么?或者使用 mixin 方 
>> 式处理插
>> 件,可以参考 Ulipad 代码。
>>
>> Mingzhe Huang wrote::
>> > 我其实想写一个支持插件的引擎。这个引擎大致的原理和eclipse差不多,用户写
>> > 一个xml配置文件告诉引擎一些元数据,然后引擎去读取用户编写的代码来运行。
>> > Java里有classloader机制,可以载入编译好的class文件。我在想,python里 
>> 面应
>> > 该也有类似动态载入代码的方法喽。我一开始想的就是lambda或者eval。不知 
>> 道还
>> > 会有其它的吗?
>> >
>> > On 1/14/07, yi huang <yi.codeplayer在gmail.com> wrote:
>> >>
>> >> On 1/14/07, tocer < tocer.deng在gmail.com> wrote:
>> >> >
>> >> > 呵呵,也许有时候确实需要这种方式呢。我还真不知道这种方式有什么不好?
>>
>> -- 
>> Vim 中文 Google 论坛 http://groups.google.com/group/Vim-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

-- 
Vim 中文 Google 论坛 http://groups.google.com/group/Vim-cn

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

2007年01月15日 星期一 11:46

Mingzhe Huang archerzz在gmail.com
星期一 一月 15 11:46:03 HKT 2007

问题是import后面的名字是在运行时才能得到的。请看下面:

pluginString = """

def hello():
   return 'hello'
"""
print >> file('plugin.py', 'w'), pluginString
if os.paht.exists('plugin.py'):
   import plugin #plugin这里是静态的,如果plugin是个字符串变量,会报错
   plugin.hello()

貌似用eval是最快捷的,呵呵。等会我试试看刘鑫兄弟的方法。

On 1/15/07, tocer <tocer.deng在gmail.com> wrote:
>
> 不知道这样行不行?
>
> pluginString = """
>
> def hello():
>    return 'hello'
> """
> print >> file('plugin.py', 'w'), pluginString
> if os.paht.exists('plugin.py'):
>    import plugin
>    plugin.hello()
>
>
> Mingzhe Huang wrote::
> > 但是import不是静态的关键字吗?我是希望能根据配置文件动态载入用户的代码。
> > 比如这样:
> > pluginString = "UserClass"
> > import pluginString #这句话显然目前不行
> > ob = UserClass()
> >
> > 我的假设是引擎不清楚用户的代码,类似eclipse那样,完全是运行时载入的。
> > Java有classloader,不知道python除了eval,还有别的什么吗?
> >
> > On 1/14/07, tocer < tocer.deng在gmail.com> wrote:
> >>
> >> 如果用的代码是 python 写的,直接 import 不就可以么?或者使用 mixin 方
> >> 式处理插
> >> 件,可以参考 Ulipad 代码。
> >>
> >> Mingzhe Huang wrote::
> >> > 我其实想写一个支持插件的引擎。这个引擎大致的原理和eclipse差不多,用户写
> >> > 一个xml配置文件告诉引擎一些元数据,然后引擎去读取用户编写的代码来运行。
> >> > Java里有classloader机制,可以载入编译好的class文件。我在想,python里
> >> 面应
> >> > 该也有类似动态载入代码的方法喽。我一开始想的就是lambda或者eval。不知
> >> 道还
> >> > 会有其它的吗?
> >> >
> >> > On 1/14/07, yi huang <yi.codeplayer在gmail.com> wrote:
> >> >>
> >> >> On 1/14/07, tocer < tocer.deng在gmail.com> wrote:
> >> >> >
> >> >> > 呵呵,也许有时候确实需要这种方式呢。我还真不知道这种方式有什么不好?
> >>
> >> --
> >> Vim 中文 Google 论坛 http://groups.google.com/group/Vim-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
>
> --
> Vim 中文 Google 论坛 http://groups.google.com/group/Vim-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




-- 
Best Regards,

Archer

Ming Zhe Huang
-------------- 下一部分 --------------
一个HTML附件被移除...
URL: http://python.cn/pipermail/python-chinese/attachments/20070115/761fc39e/attachment.htm 

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

2007年01月15日 星期一 12:31

头太晕 torrycn在gmail.com
星期一 一月 15 12:31:48 HKT 2007

2007/1/15, Mingzhe Huang <archerzz在gmail.com>:
>
> ÎÊÌâÊÇimportºóÃæµÄÃû×ÖÊÇÔÚÔËÐÐʱ²ÅÄܵõ½µÄ¡£Çë¿´ÏÂÃ棺
>
> pluginString = """
>
> def hello():
>    return 'hello'
> """
> print >> file('plugin.py', 'w'), pluginString
> if os.paht.exists ('plugin.py'):
>    import plugin #pluginÕâÀïÊǾ²Ì¬µÄ£¬Èç¹ûpluginÊǸö×Ö·û´®±äÁ¿£¬»á±¨´í
>    plugin.hello ()


´ËÈË×ê½øÅ£½Ç¼â¶ùÁË....
-------------- 下一部分 --------------
Ò»¸öHTML¸½¼þ±»ÒƳý...
URL: http://python.cn/pipermail/python-chinese/attachments/20070115/1ce60227/attachment.htm 

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

2007年01月15日 星期一 12:43

Can Xue xuecan在gmail.com
星期一 一月 15 12:43:41 HKT 2007

ÎҵĽâ¾ö·½°¸£º

def ImportModule(moduleName):
    """Import and return a module from given module name.

    @type moduleName: String
    @param moduleName: The given module name.
    @rtype: Module
    @return: The imported module.
    """
    module = __import__(moduleName)
    components = moduleName.split('.')
    for component in components[1:]:
        module = getattr(module, component)
    return module

def FromModuleImportObject(moduleName, objectName):
    """Import and return an object from a given module name.

    @type moduleName: String
    @param moduleName: The given module name.
    @type objectName: String
    @param objectName: The given object name.
    @rtype: Object
    @return: The imported object.
    """
    module = ImportModule(moduleName)
    return module.__getattribute__(objectName)

ʹÓ÷½·¨£º

try:
    m = ImportModule('foo.bar')
    o = FromModuleImportObject('foo.bar', 'foobar')
except:
    # do something you want
    pass

2007/1/15, Mingzhe Huang <archerzz在gmail.com>:
>
> ÎÊÌâÊÇimportºóÃæµÄÃû×ÖÊÇÔÚÔËÐÐʱ²ÅÄܵõ½µÄ¡£Çë¿´ÏÂÃ棺
>
> pluginString = """
>
> def hello():
>    return 'hello'
> """
> print >> file('plugin.py', 'w'), pluginString
> if os.paht.exists ('plugin.py'):
>    import plugin #pluginÕâÀïÊǾ²Ì¬µÄ£¬Èç¹ûpluginÊǸö×Ö·û´®±äÁ¿£¬»á±¨´í
>    plugin.hello ()
>
> òËÆÓÃevalÊÇ×î¿ì½ÝµÄ£¬ºÇºÇ¡£µÈ»áÎÒÊÔÊÔ¿´ÁõöÎÐֵܵķ½·¨¡£
>
> On 1/15/07, tocer <tocer.deng在gmail.com> wrote:
> >
> > ²»ÖªµÀÕâÑùÐв»ÐУ¿
> >
> > pluginString = """
> >
> > def hello():
> >    return 'hello'
> > """
> > print >> file('plugin.py', 'w'), pluginString
> > if os.paht.exists('plugin.py '):
> >    import plugin
> >    plugin.hello()
> >
> >
> > Mingzhe Huang wrote::
> > > µ«ÊÇimport²»ÊǾ²Ì¬µÄ¹Ø¼ü×ÖÂð£¿ÎÒÊÇÏ£ÍûÄܸù¾ÝÅäÖÃÎļþ¶¯Ì¬ÔØÈëÓû§µÄ´úÂë¡£
> > > ±ÈÈçÕâÑù£º
> > > pluginString = "UserClass"
> > > import pluginString #Õâ¾ä»°ÏÔȻĿǰ²»ÐÐ
> > > ob = UserClass()
> > >
> > > ÎҵļÙÉèÊÇÒýÇæ²»Çå³þÓû§µÄ´úÂ룬ÀàËÆeclipseÄÇÑù£¬ÍêÈ«ÊÇÔËÐÐʱÔØÈëµÄ¡£
> > > JavaÓÐclassloader£¬²»ÖªµÀpython³ýÁËeval£¬»¹ÓбðµÄʲôÂð£¿
> > >
> > > On 1/14/07, tocer < tocer.deng在gmail.com > wrote:
> > >>
> > >> Èç¹ûÓõĴúÂëÊÇ python дµÄ£¬Ö±½Ó import ²»¾Í¿ÉÒÔô£¿»òÕßʹÓà mixin ·½
> > >> ʽ´¦Àí²å
> > >> ¼þ£¬¿ÉÒԲο¼ Ulipad ´úÂë¡£
> > >>
> > >> Mingzhe Huang wrote::
> > >> > ÎÒÆäʵÏëдһ¸öÖ§³Ö²å¼þµÄÒýÇæ¡£Õâ¸öÒýÇæ´óÖµÄÔ­ÀíºÍeclipse²î²»¶à£¬Óû§Ð´
> > >> > Ò»¸öxmlÅäÖÃÎļþ¸æËßÒýÇæһЩԪÊý¾Ý£¬È»ºóÒýÇæÈ¥¶ÁÈ¡Óû§±àдµÄ´úÂëÀ´ÔËÐС£
> > >> > JavaÀïÓÐclassloader»úÖÆ£¬¿ÉÒÔÔØÈë±àÒëºÃµÄclassÎļþ¡£ÎÒÔÚÏ룬pythonÀï
> > >> ÃæÓ¦
> > >> > ¸ÃÒ²ÓÐÀàËƶ¯Ì¬ÔØÈë´úÂëµÄ·½·¨à¶¡£ÎÒÒ»¿ªÊ¼ÏëµÄ¾ÍÊÇlambda»òÕßeval¡£²»Öª
> > >> µÀ»¹
> > >> > »áÓÐÆäËüµÄÂð£¿
> > >> >
> > >> > On 1/14/07, yi huang <yi.codeplayer在gmail.com> wrote:
> > >> >>
> > >> >> On 1/14/07, tocer < tocer.deng在gmail.com> wrote:
> > >> >> >
> > >> >> > ºÇºÇ£¬Ò²ÐíÓÐʱºòȷʵÐèÒªÕâÖÖ·½Ê½ÄØ¡£ÎÒ»¹Õæ²»ÖªµÀÕâÖÖ·½Ê½ÓÐʲô²»ºÃ£¿
> > >>
> > >> --
> > >> Vim ÖÐÎÄ Google ÂÛ̳ http://groups.google.com/group/Vim-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
> >
> > --
> > Vim ÖÐÎÄ Google ÂÛ̳ http://groups.google.com/group/Vim-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
>
>
>
>
> --
> Best Regards,
>
> Archer
>
> Ming Zhe Huang
>
> _______________________________________________
> 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/20070115/fe64368f/attachment-0001.html 

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

2007年01月15日 星期一 12:49

Mingzhe Huang archerzz在gmail.com
星期一 一月 15 12:49:03 HKT 2007

呵呵,不好意思,刚才搞错了,import可以加变量名的,也就是动态的载入!

On 1/15/07, 头太晕 <torrycn在gmail.com> wrote:
>
>
>
> 2007/1/15, Mingzhe Huang <archerzz在gmail.com>:
> >
> > 问题是import后面的名字是在运行时才能得到的。请看下面:
> >
> > pluginString = """
> >
> > def hello():
> >    return 'hello'
> > """
> > print >> file('plugin.py', 'w'), pluginString
> > if os.paht.exists ('plugin.py'):
> >    import plugin #plugin这里是静态的,如果plugin是个字符串变量,会报错
> >    plugin.hello ()
>
>
> 此人钻进牛角尖儿了....
>
>
>
>
>
> _______________________________________________
> 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,

Archer

Ming Zhe Huang
-------------- 下一部分 --------------
一个HTML附件被移除...
URL: http://python.cn/pipermail/python-chinese/attachments/20070115/e7e70dfa/attachment.html 

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

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

    你的回复:

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

    Zeuux © 2025

    京ICP备05028076号